Poj 2356Find a multiple
2016-04-27 19:44
148 查看
http://poj.org/problem?id=2356
#include <stdio.h> #define M 11000 int a[M],b[M]; //b[i]为 1~i的值 // //题意 在长度为n的序列a中找到一个子段 使它的和 % n==0 // b[i]为 1~i的值(1<=i<=n) 若bi%n==0 则找到 // 否则 bi%n 的余数范围为 1~n-1 // 现有n个bi n个余数 则必然存在两个 bi bj 同余 n -> n|(bj-bi) 则找到字段 a[i+1]...a[j] // (鸽巢原理) int main() { int i,j,k,n,f=0; scanf("%d",&n); for(i=1;i<=n;i++) { scanf("%d",&a[i]); if(i>=2) b[i]=b[i-1]+a[i]; else b[i]=a[i]; } for(i=1;i<=n;i++) { if(b[i]%n==0) { f=1; printf("%d\n",i); for(j=1;j<=i;j++) { printf("%d\n",a[j]); } break; } } if(!f) { for(j=2;j<=n;j++) { for(i=1;i<=j-1;i++) { if((b[j]-b[i])%n==0) { printf("%d\n",j-i); for(k=i+1;k<=j;k++) { printf("%d\n",a[k]); } f=1;break; } } if(f) break; } } return 0; }
相关文章推荐
- 个人冲刺04
- 【转】Dubbo_与Zookeeper、SpringMVC整合和使用(负载均衡、容错)
- C#反射
- android---Activity仿Dialog
- Uncaught SyntaxError: Failed to set the 'innerHTML' property on 'Element'
- yum更新源
- 【硬件】虚拟机是怎么实现的?
- PHP面向对象
- 使用ostringstream来进行类型转换
- eclipse下使用git插件上传代码至github
- [线段树 期望] BZOJ 2752: [HAOI2012]高速公路(road)
- 线程池.(Executors,ThreadPoolExecutor,BlockingQueue,RejectedExecutionHandler).介绍
- 冲刺阶段第九天
- 理解PCA和SVD
- zoj3460(二分图,拆点,二分)
- 【TD】CG 特效公司里 Pipeline TD 的职业生涯如何?
- 每天一个函数---divmod函数
- 浅言架构——Android MVP ...
- Android中EditText的setError文字不显示的问题
- android 消息队列 ConcurrentLinkedQueue