poj3370 poj2356 鸽巢定理
2013-11-18 16:02
183 查看
解梯报告
题目链接 :http://poj.org/problem?id=3370
题目大意 :给你n个数,找出其中c个数满足c个数的和是c的倍数。(c
<=n)
思路 :余数计算 + 鸽巢定理。
取余是一种常用手段,尤其是当题目中找一些数字直接和的关系的时候,往往通过
余数来将数字分类。2011年多校FZU有一位dp的题目就可以用余数乱搞。
将前i个数的和模c的值存下来,如果sum[i]
= 0或sum[i]之前第k位出现过,那么
Sum[i]
– sum[k] = 0,即k+1到i是满足模c余零的。到这里还没有用到鸽巢定理,题
目描述里有无解的情况,而一个重要的信息(c<=n)告诉我们这里是必然有解的。
余数有c个(0到c)要放到n个盒子里(n>=c)那么必然有一个是0或者有两个是
一样的。《鸽巢定理》
AC code:
#include<cstdio>
#include<cstring>
#defineMAXN100100
intnum[MAXN],sum[MAXN],vis[MAXN];
voidprint(inta,intb){
for(inti=a;i<=b;++i)printf("%d
",i);
printf("\n");
}
intmain(){
intc,n;
while(~scanf("%d
%d",&c,&n),c||n){
for(inti=1;i<=n;i++){
scanf("%d",&num[i]);
}
memset(vis,0,sizeof(vis));
sum[0]=0;
for(inti=1;i<=n;++i){
sum[i]=(sum[i-1]+num[i])%c;
if(sum[i]==0){
print(1,i);
break;
}
if(vis[sum[i]]){
print(vis[sum[i]]+1,i);
break;
}
vis[sum[i]]=i;
}
}
return0;
}
poj2356 鸽巢定理" TITLE="poj3370 poj2356 鸽巢定理" />
题目链接 :http://poj.org/problem?id=3370
题目大意 :给你n个数,找出其中c个数满足c个数的和是c的倍数。(c
<=n)
思路 :余数计算 + 鸽巢定理。
取余是一种常用手段,尤其是当题目中找一些数字直接和的关系的时候,往往通过
余数来将数字分类。2011年多校FZU有一位dp的题目就可以用余数乱搞。
将前i个数的和模c的值存下来,如果sum[i]
= 0或sum[i]之前第k位出现过,那么
Sum[i]
– sum[k] = 0,即k+1到i是满足模c余零的。到这里还没有用到鸽巢定理,题
目描述里有无解的情况,而一个重要的信息(c<=n)告诉我们这里是必然有解的。
余数有c个(0到c)要放到n个盒子里(n>=c)那么必然有一个是0或者有两个是
一样的。《鸽巢定理》
AC code:
#include<cstdio>
#include<cstring>
#defineMAXN100100
intnum[MAXN],sum[MAXN],vis[MAXN];
voidprint(inta,intb){
for(inti=a;i<=b;++i)printf("%d
",i);
printf("\n");
}
intmain(){
intc,n;
while(~scanf("%d
%d",&c,&n),c||n){
for(inti=1;i<=n;i++){
scanf("%d",&num[i]);
}
memset(vis,0,sizeof(vis));
sum[0]=0;
for(inti=1;i<=n;++i){
sum[i]=(sum[i-1]+num[i])%c;
if(sum[i]==0){
print(1,i);
break;
}
if(vis[sum[i]]){
print(vis[sum[i]]+1,i);
break;
}
vis[sum[i]]=i;
}
}
return0;
}
poj2356 鸽巢定理" TITLE="poj3370 poj2356 鸽巢定理" />
相关文章推荐
- bupt204&nbsp;北邮多校J题&nbsp;&nbsp;后最数组+LC…
- hdu3068&nbsp;manacher算法&nbsp;最长回文子…
- poj2441&nbsp;&nbsp;poj1185&nbsp;状态压缩DP
- poj线段树
- 多校联合赛&nbsp;&nbsp;&nbsp;第一场
- poj&nbsp;2447&nbsp;代码改正
- poj1151&nbsp;矩形面积并
- poj1149&nbsp;最大流
- poj2679&nbsp;&nbsp;最短路+受负环影响点的判…
- 用户增加,功能扩展时系统如何升级 架构改变
- Android开发之--Auto Complete TextView的使用
- Excel中设置下拉列表的来源怎么选择其他工作表的内容
- 需要整理的
- 6个常见的 PHP 安全性攻击
- Data Domain和Avamar到底有什么不同呢?
- html_day3---表单元素
- JAVA 学习笔记一
- dedecms 全局标签 使用
- poj1180&nbsp;dp斜率优化
- hdu3507&nbsp;动态规划+斜率优化