关闭

POJ1189 HDU271 The Cow Lineup

672人阅读 评论(0) 收藏 举报

对于给定的序列和k,如例子所示进行划分

{1,5,3,2,5,1,3,4}{4,2,5,1,2,3}{}

其中第一和第二个子序列可以完全覆盖[1,k],所以对于任何长度是1或者2序列都可以构成。但是由于第三个子序列不完整不能完全覆盖[1,k](长度是0也是不完整),故长度是3的序列不能构成


/*******************************************************************************
 # Author : Neo Fung
 # Email : neosfung@gmail.com
 # Last modified: 2012-03-26 19:28
 # Filename: POJ1189 HDU271 The Cow Lineup.cpp
 # Description : 
 ******************************************************************************/
#ifdef _MSC_VER
#define DEBUG
#define _CRT_SECURE_NO_DEPRECATE
#endif

#include <fstream>
#include <stdio.h>
#include <iostream>
#include <string.h>
#include <string>
#include <limits.h>
#include <algorithm>
#include <math.h>
#include <numeric>
#include <functional>
#include <ctype.h>
#define MAX 100010
using namespace std;

int main(void)
{
#ifdef DEBUG  
  freopen("../stdin.txt","r",stdin);
  freopen("../stdout.txt","w",stdout); 
#endif  

  int n,m,tmp;
	bool num[MAX];

  while(~scanf("%d%d",&n,&m) )
  {
		int ans=1,cnt=0;
    memset(num,false,sizeof(num));
    while(n--)
		{
			scanf("%d",&tmp);
			if(!num[tmp])
			{
				num[tmp]=true;
				++cnt;
				if(cnt==m)
				{
					cnt=0;
					memset(num,false,sizeof(num));
					++ans;
				}
			}
		}
		printf("%d\n",ans);
  }

  return 0;
}


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:294023次
    • 积分:4992
    • 等级:
    • 排名:第5656名
    • 原创:217篇
    • 转载:12篇
    • 译文:0篇
    • 评论:32条
    最新评论