您的位置:首页 > 其它

poj 2769 Reduced ID Numbers

2013-07-09 17:00 281 查看
题目地址: http://poj.org/problem?id=2769

要点 :1 如果在确定了模数后再在循体里面用双重for循环检测是否存在 同余的一定会超时 需要寻找O(n)复杂度的方法

2一开始想使用map 检测是否重复,结果还是超时 最后还是用类似于筛法的方法,关键点是初始化时只能(也只需要)初始化到k,否则仍会tle

#include<iostream>
#include<map>
#include<cstdlib>
using namespace std;

int main()
{
bool find[100000];
int size;
cin>>size;
int n;
while(cin>>n)
{
map<int,int>  m;
int *p =new int
;
for(int i=0;i<n;i++)
cin>>p[i];
int k;
bool bad;
for(k=n;;k++)
{
bad=0;
for(int i=0;i<k;i++)
find[i]=0;
for(int i=0;i<n;i++)
{

if(find[p[i]%k]==1)
{
bad=1;
break;
}
find[p[i]%k]=1;

}
if(bad==0) break;
}

cout<<k<<endl;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: