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;}}
}

poj - 2356 Find a multiple相关推荐

  1. POJ 2356 Find a multiple 神题 传说中的经典.

    题目 Description The input contains N natural (i.e. positive integer) numbers ( N <= 10000 ). Each ...

  2. POJ 2356 Find a multiple (抽屉原理)

    感觉这个题很不错,至少开始真的没想道可以用抽屉原理推出一个结论,然后把这题秒掉.... 已知有n个元素,sum[i]表示从1到i所有数的和...sum[i]%n可以得到一个剩余系,如果出现0,那么结果 ...

  3. poj 1426 Find The Multiple (简单搜索dfs)

    题目: Given a positive integer n, write a program to find out a nonzero multiple m of n whose decimal ...

  4. POJ 1426 Find The Multiple

    解题思路: 1)每5位为一个基数,枚举5位所有只包含0,1的数ans[],map[i][j]保存(ans[j]*100000^i)%n的值 2)BFS计算所有组合出现的模,直到出现0 代码 #incl ...

  5. POJ 2356 (抽屉原理)

    题目中说:随便输出一组.抽屉原理可以求出取出的数连续的情况. #include <iostream> #include<cstdio> using namespace std; ...

  6. POJ 1426 Find The Multiple BFS

    没什么好说的 从1开始进行广搜,因为只能包涵0和1,所以下一次需要搜索的值为next=now*10 和 next=now*10+1,每次判断一下就可以了,但是我一直不太明白我的代码为什么C++提交会错 ...

  7. 翻译D26(附AC码 POJ 24:Divisor and Multiple)

    " Ctrl AC!一起 AC!" 原题: Divisor and Multipley 我的翻译: 描述 给定D和M.D是A和B的除数,M是A和B的倍数.求A和B. 输入 两个正整 ...

  8. POJ前面的题目算法思路【转】

    1000 A+B Problem 送分题 49% 2005-5-7 1001 Exponentiation 高精度 85% 2005-5-7 1002 487-3279 n/a 90% 2005-5- ...

  9. POJ 动态规划题目列表

    1.这份列表当然不是我原创的,从文库里下载了一份,放到这里便于自己浏览和查找题目. ※最近更新:Poj斜率优化题目 1180,2018,3709 列表一:经典题目题号: 容易:  1018, 1050 ...

最新文章

  1. Linux监控平台 zabbix介绍和安装
  2. rsync+inotify实现实时同步案例--转
  3. ACL 2020 | MobileBERT:一种与任务无关的模型压缩方法
  4. 用UE4创造开放世界:Kite 实时演示
  5. java 并发测试程序_java并发编程实战:第十二章---并发程序的测试
  6. 为何采用双亲委派机制
  7. 3.2.2.5 BRE运算符优先级
  8. 基于mykernel完成多进程的简单内核
  9. android 面试总结,后续注意学习
  10. 问题六十四:怎么用C++实现二叉查找树(binary search tree)及其相关操作
  11. HSRP+生成树+vlan间路由!
  12. word2016添加题注|图注文献标号的交叉引用及引用的更新|添加不同类型的页码|文献自动编号|文献编号的自动引用|删除空白页
  13. php英语单词大全95
  14. 2021Fall - 欧陆CS转交互留学项目信息整理
  15. Android Ibeacon 算法,iBeacon定位算法
  16. python用逗号隔开输出_c语言提取逗号隔开的 python输出用逗号隔开的数字
  17. 微信公众号通过第三方平台完成授权
  18. 二十四式长生图——清手抄本(扫描版)
  19. 微信小程序开发——登录登出示例
  20. npm,nodejs如何升级

热门文章

  1. 用Delphi开发OPC客户端工具的方法研究
  2. 利用 Rize 来进行 UI 测试或 E2E 测试
  3. python3.6 安装Scrapy
  4. Spring IOC容器分析(1) -- BeanFactory
  5. 5G有多恐怖?几秒钟可下载整部电影
  6. android(cm11)状态栏源码分析(一)
  7. 用Django开发Web应用程序异常
  8. 利用 portupgrade快速更新通过ports安装的软件
  9. ScriptManager同时存在于两个dll中的问题
  10. 知识产权创业的比赛结果