POJ1189 HDU271 The Cow Lineup

60 篇文章 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;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值