poj 2356 Find a multiple(组合数学:鸽巢原理)
来源:互联网 发布:万维天文望远镜软件 编辑:程序博客网 时间:2024/05/18 01:26
和poj 3370很像, 但这里只有一个n且对应n个数
根据鸽巢原理是应该存在一个i对应前i项和模n==0
但是题目中说了这n个数可以相同,所以可能存在不等于0的情况
比如:
5
1 5 5 5 5
但此时必然sum%n有重复
同poj 3370一样输出相同两数对应下标之间的数即可
代码如下:
#include <cstdio>#include <cstring>#define MAXN 100100using namespace std;int flag[MAXN];int a[MAXN];int main(void) { int n, c, sum, tmp; while(scanf("%d", &n) != EOF) { sum = 0; memset(flag, 0, sizeof(flag)); for(int i=1; i<=n; ++i) { scanf("%d", &a[i]); } for(int i=1; i<=n; ++i) { sum += a[i]; tmp = sum%n; sum %= n; if(tmp == 0) { printf("%d\n%d\n", i, a[1]); for(int j=2; j<=i; ++j) printf("%d\n", a[j]); break; } else { if(flag[tmp]) { printf("%d\n%d\n", i-flag[tmp], a[flag[tmp]+1]); for(int j=flag[tmp]+2; j<=i; ++j) printf("%d\n", a[j]); break; } } flag[tmp] = i; } } return 0;}
0 0
- poj 2356 Find a multiple(组合数学:鸽巢原理)
- POJ 2356 Find a multiple(组合数学-抽屉原理)
- POJ 2355 Find a multiple(组合数学-抽屉原理)
- (组合数学3.3.1.1)POJ 2356 Find a multiple(抽屉原理)
- Find a multiple(组合数学:鸽巢原理的简单应用)
- POJ 2356 Find a multiple 鸽巢原理
- POJ 2356 Find a multiple 鸽巢原理
- POJ:2356 Find a multiple(鸽巢原理)
- POJ 2356 Find a multiple 鸽巢原理
- POJ 2356 Find a multiple 鸽巢原理
- poj 2356 Find a multiple[鸽巢原理]
- POJ 题目2356 Find a multiple(鸽巢原理)
- poj 2356 Find a multiple (鸽巢原理妙用)
- poj 2356 Find a multiple(鸽巢原理+标记)
- POJ 2356 Find a multiple(鸽巢原理)
- poj 2356 Find a multiple(鸽巢原理)
- POJ 2356:Find a multiple (鸽巢原理)
- POJ 2356 Find a multiple【鸽巢原理】
- 设计模式 之 责任链模式
- <转>SQL函数——COALESCE
- 文章修改添加
- hdu 1267 下沙的沙子有几粒?
- 每周四十小时,你有多少是在为自己干活?
- poj 2356 Find a multiple(组合数学:鸽巢原理)
- java-Cannot reduce the visibility of the inherited method from 父类
- java面试之58同城&网易面试
- play!framework 是我在play它还是它在play我
- Hibernate使c3p0数据库连接池
- TypeError: 'module' object is not callable 原因分析
- jquery和js方法 获取text和radio select值 及是否选中
- 关于android自动生成的R类
- 内存管理笔记(分页,分段,逻辑地址,物理地址与地址转换方式)