AGC010
来源:互联网 发布:使命召唤ol优化差 编辑:程序博客网 时间:2024/05/29 18:46
原题链接
题意简述
给出一个由
分析
考虑一次操作对环带来了什么影响。
(在
差分后:
可以看到,一次操作相当于对差分数列(或者说是差分环)的一个位置加上n-1,剩下的位置减去1。那么只要检查原环的差分数列能否全变为0,并且此时和也为0就行了。
对每一个位置的计算复杂度为
实现
每次操作会使和
差分数列的每个位置要能在数个
列式表示为
最后,如果
代码
#include <cstdio>typedef long long lint;int const N=1e5+10;int n,a[N];int dif[N];int main(){ freopen("b.in","r",stdin); scanf("%d",&n); if(n==1) {printf("YES"); return 0;} for(int i=1;i<=n;i++) scanf("%d",&a[i]); a[n+1]=a[1]; lint s=(lint)n*(n+1)>>1,sum=0; for(int i=1;i<=n;i++) sum+=a[i],dif[i]=a[i+1]-a[i]; if(sum%s!=0) {printf("NO"); return 0;} lint k=sum/s,sumX=0; for(int i=1;i<=n;i++) { lint x=(k-dif[i])/n; if(x<0 || x*n!=k-dif[i]) {printf("NO"); return 0;} sumX+=x; } if(sumX==k) printf("YES"); else printf("NO"); return 0;}
注意
开longlong!int*int也有可能爆int,要先转成longlong再乘!
连WA六发…
阅读全文
0 0
- AGC010
- AGC010
- AGC010
- AGC010
- jmeter 元件的作用域与执行顺序
- 闭包作用域问题
- MindManager 2018新视图洋葱图介绍
- R12 FA中“摊销“(Amortize Adjustment)的实际应用
- Hadoop学习笔记1
- AGC010
- lucene7.1.0 (二) helloworld
- 深度学习所需的python-学习笔记8
- maven私服库搭建
- ubuntu 使用apt-get install 安装php5.6--php7
- Python语言基础-02
- java算法笔记--全排列
- spring boot (一)入门 启动、日志配置和快速构建
- java ftp上传文件中,如何判断文件是否被打开