PKU POJ 1989 The Cow Lineup 贪心策略
将输入序列划分为若干段,每段包含1~k至少各一个。有几个这样的段(如x)就能形成x长度的任意序列。所以最短不存在的序列长度为x+1。
#include<iostream> using namespace std; bool flag[10000]; int main() { int n,k,tmp,cnt,len; while (scanf("%d%d",&n,&k)!=EOF) { memset(flag,true,k+1); cnt=0; len=0; while (n--) { scanf("%d",&tmp); if (flag[tmp]) { ++cnt; flag[tmp]=false; } if (cnt==k) { ++len; cnt=0; memset(flag,true,k+1); } } printf("%d\n",len+1); } return 0; }
浙公网安备 33010602011771号