poj - 2356 Find a multiple
来源:互联网 发布:呼吸淘宝旗舰店真假 编辑:程序博客网 时间:2024/06/14 18:07
http://poj.org/problem?id=2356
题意:给你n个数,找出几个数,使他们的和是n的倍数;有多少数组成 ,输出哪几个数
题解:鸽巢原理。(1)当前n项和对n取模为0 输出前n个数,即是所求值
(2)当取模的结果出现两次,那么在这取模相同的(a,b】区间的数即使所求值
code:
#include<cstdio>#include<cstring>#include<iostream>#include<algorithm>using namespace std;bool vis[15005];int a[10005];int ans[10005];int main(){ int n; while(cin >> n){ for(int i = 0;i < n;i++) cin >> a[i]; int t = 0,p = -1; memset(vis,false,sizeof(vis)); for(int i = 0;i < n;i++) { t = (t + a[i]) % n; ans[i] = t; if(t == 0) {p = i;break;} if(vis[t]) {p = i;break;} if(!vis[t]) vis[t] = true; } if(t == 0) { cout << p + 1 << endl; for(int i = 0;i <= p;i++) cout << a[i] << endl; } else { int i; for( i = 0;i <= p;i++) if(a[i] == t) break; cout << p - i << endl; for(int j = i + 1;j <= p;j++) cout << a[j] << endl; } }}
0 0
- 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 2356Find a multiple
- POJ 2356 Find a multiple
- Find a multiple POJ
- Find a multiple (POJ
- Find a multiple POJ
- poj 2356 Find a multiple dfs 爆搜!!!!
- 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(鸽笼原理)
- HTTP Status 500 - Request processing failed; nested exception is org.springframework.jdbc.BadSqlGram
- QEMU KVM Libvirt手册(5) – snapshots
- Android adb.exe程序启动不起来,如何处理
- MFC(文本编程,孙鑫C++第五讲笔记整理)
- ImportDll
- poj - 2356 Find a multiple
- 怎样使一个Android应用不被杀死?(整理)
- AppCompat V21:将 Materia Design 兼容到5.0之前的设备
- 适合于图像处理方向的SCI期刊杂志列表
- android代码大全之(二):获取屏幕大小
- ultratree的使用(一):节点间的拖动
- 用备份复原数据库
- Qt自定义圆周动画
- Cocos2d - x学习笔记 [0]