POJ 3370 Halloween treats 鸽巢原理
来源:互联网 发布:骚本配件名称及数据 编辑:程序博客网 时间:2024/05/21 14:08
POJ 3370 Halloween treats
题意: 给定n户人家提供的糖果数目,c个小孩选择其中一些用户把糖果拿走,最后平分,不能有剩余。 给出一个方案(c<=n<=100000)
方案:鸽巢原理,用Si表示 前i户人家的糖果数目之和对c求余。n>c,根据鸽巢原理,肯定有两个和值对c求余的值相同,假设Si==Sj,第 (i+1,i+2,i+3,……,j ) 户人家即为答案。
#include<iostream>#include<cstdio>#include<cstdlib>#include<cstring>using namespace std;#define N 100100int Mark[N];int main(){ int n,c; while(scanf("%d%d",&c,&n),n&&c){ for(int i=0;i<c;i++) Mark[i] = 0; int x,tot = 0; Mark[0] = 1; bool found = false; int beg,end; for(int i=1;i<=n;i++){ scanf("%d",&x); if(!found){ tot += x; if(tot>=c) tot%=c; if(Mark[tot]) { beg = Mark[tot]; end = i; found = true; }else{ Mark[tot] = i+1; } } } if(found){ printf("%d",beg); for(++beg;beg<=end;++beg) printf(" %d",beg); printf("\n"); }else{ printf("no sweets\n"); } } return 0; }
- POJ 3370 Halloween treats 鸽巢原理
- POJ 3370 Halloween treats 鸽巢原理
- POJ 3370 Halloween treats 鸽巢原理
- POJ 3370 Halloween treats - 鸽巢原理
- POJ 3370 Halloween treats【鸽巢原理】
- poj 3370 Halloween treats(反演定理+鸽巢原理)
- 鸽巢原理应用-分糖果 POJ 3370 Halloween treats
- POJ 3370 Halloween treats 鸽巢原理 解题
- poj 3370 Halloween treats (组合数学:鸽巢原理)
- POJ 3370 Halloween treats(鸽巢原理)
- POJ 题目3370 Halloween treats(鸽巢原理)
- POJ 3370 && HDU 1808 Halloween treats(鸽巢原理)
- 数学 ( 鸽巢原理 )——Halloween treats ( POJ 3370 )
- POJ 3370-Halloween treats(鸽巢原理)
- POJ 3370:Halloween treats(鸽巢原理)
- poj 3370 Halloween treats(抽屉原理)
- POJ 3370 Halloween treats(抽屉原理)
- POJ 3370 Halloween treats(抽屉原理)
- int main(int argc,char* argv[])详解
- TCPDUMP for Android(抓TCP数据包工具)
- java基础--GUI(图形化界面)
- 过滤出属性值对
- cocos2d-x常用宏 沈大海cocos2d-x教程16
- POJ 3370 Halloween treats 鸽巢原理
- GDB 多线程调试
- STL内存管理的C实现
- web请求到达Asp.net的处理
- HDU 1788 模余运算
- 事半功倍系列 javascript
- I/O编程基础知识
- .net下性能优化
- LeetCode Next Permutation