【LibreOJ】【LOJ】#6220. sum
2024-08-25 23:34:35
【题意】对于n个数,找出一些数使得它们的和能被n整除,输出任意一组方案,n<=10^6。
【算法】构造/结论
【题解】引用自:http://www.cnblogs.com/Sakits/p/7407103.html by Sakits
对n个数求前缀和,即sum[i]=sigma(a[1~i])%n,若sum[i]=0则找到答案,否则n个前缀和填充1~n-1,根据抽屉原理必有两个前缀和相同,则中间那一段数字之和是n的倍数。
#include<cstdio>
long long s,n,b[],a[];
int main(){
scanf("%lld",&n);
b[]=;
for(int i=;i<=n;i++){
scanf("%lld",&a[i]);
s=(s+a[i])%n;
if(!b[s])b[s]=i+;else{
for(int j=b[s];j<=i;j++)printf("%d %lld\n",j,a[j]);
break;
}
}
}
最新文章
- NSOperation的start与main,并发与非并发。
- Myeclipse8.5 反编译插件 jad 安装
- ios NSThred多线程简单使用
- RMAN基础知识补充
- Spark1.0 安装
- 关于LCD以及BMP和RGB565
- Python爬虫之爬取慕课网课程评分
- 聊一聊isinstance与type
- MAVEN 加载公共包 commons
- Google file system
- 关于vs设置其他主题配色问题
- Centos7修改默认最大文件打开数
- Flink的入门
- [BUG随想录] expat不兼容BUG
- js模板 arttemplate 让数据与html分离
- 2012Google校园招聘笔试题
- 【Win10】页面的导航效果
- (转)python的paramiko模块
- HBase学习之路 (十一)HBase的协过滤器
- C#子线程中更新主线程UI-----注意项