六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 69|回复: 0

poj3370——Halloween treats

[复制链接]

升级  93.8%

309

主题

309

主题

309

主题

进士

Rank: 4

积分
969
 楼主| 发表于 2013-1-26 13:37:54 | 显示全部楼层 |阅读模式
抽屉原理.同时 sum[]有dp的味道!
详见:http://www.cppblog.com/pcfeng502/archive/2009/10/18/98902.aspx
http://www.cnblogs.com/woodfish1988/archive/2007/09/25/905784.html
第二个博客给出证明!太强大了!
#include<iostream>#include<cstdio>#include<cstring>using namespace std;#define maxn 100005int num[maxn],vis[maxn],sum[maxn];int main(){int n,c,i;while(cin>>c>>n&&n&&c){int mod=0,k;memset(vis,false,sizeof(vis));vis[mod]=true;bool flag=true;int position;for(i=1;i<=n;i++){scanf("%d",&num[i]);if(flag){mod=(mod+num[i]%c)%c;if(vis[mod]){ position=i;flag=false;k=mod;}else {vis[mod]=true; sum[i]=mod;}}   }for(i=position-1;i>=0;i--){if(sum[i]==k) break;}for(k=i+1;k<=position;k++)printf("%d ",k);printf("\n");}return 0;}
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表