【codeforces】 466C Number of Ways
来源:互联网 发布:淘宝好评追加怎么写 编辑:程序博客网 时间:2024/06/10 04:29
因为最后的值是固定的,所以三部分的和是固定的。。。求一下2/3的点的后缀,for一遍就行了。。。
#include <iostream> #include <queue> #include <stack> #include <map> #include <set> #include <bitset> #include <cstdio> #include <algorithm> #include <cstring> #include <climits> #include <cstdlib>#include <cmath>#include <time.h>#define maxn 500005#define maxm 40005#define eps 1e-10#define mod 1000000007#define INF 999999999#define lowbit(x) (x&(-x))#define mp mark_pair#define ls o<<1#define rs o<<1 | 1#define lson o<<1, L, mid #define rson o<<1 | 1, mid+1, R typedef long long LL;//typedef int LL;using namespace std;LL qpow(LL a, LL b){LL res=1,base=a;while(b){if(b%2)res=res*base;base=base*base;b/=2;}return res;}LL powmod(LL a, LL b){LL res=1,base=a;while(b){if(b%2)res=res*base%mod;base=base*base%mod;b/=2;}return res;}void scanf(int &__x){__x=0;char __ch=getchar();while(__ch==' '||__ch=='\n')__ch=getchar();while(__ch>='0'&&__ch<='9')__x=__x*10+__ch-'0',__ch = getchar();}LL gcd(LL _a, LL _b){if(!_b) return _a;else return gcd(_b, _a%_b);}// headLL num[maxn], sum[maxn];int cnt[maxn];LL n, tot;void read(void){scanf("%I64d", &n), tot = 0;for(int i = 1; i <= n; i++) scanf("%I64d", &num[i]), tot += num[i];for(int i = 1; i <= n; i++) sum[i] = sum[i-1] + num[i];}void work(void){if(sum[n] % 3) {printf("0\n");return;}LL t = sum[n] / 3, ans = 0, tt = 2 * t;for(int i = 1; i <= n; i++)if(sum[i] == tt) cnt[i] = 1;else cnt[i] = 0;cnt[n] = 0;for(int i = n-1; i >= 1; i--) cnt[i] += cnt[i+1];for(int i = 2; i <= n-1; i++) if(sum[i-1] == t) ans += cnt[i];printf("%I64d\n", ans);}int main(void){read();work();return 0;}
0 0
- codeforces 466C C. Number of Ways
- codeforces 466C Number of Ways
- Codeforces 466 C. Number of Ways
- 【codeforces】 466C Number of Ways
- Codeforces 466C Number of Ways(高效)
- Number of Ways--CodeForces 466C 水题
- Codeforces 466C Number of Ways
- codeforces 466 C Number of Ways
- Codeforces 466C Number of Ways
- codeforces-466C-Number of Ways
- Codeforces-466C-Number of Ways
- Codeforces 466C Number of Ways 二分
- Codeforces 466C Number of Ways【思维】
- codeforces 466C Number of Ways
- Codeforces 466C Number of Ways
- 【CODEFORCES】 C. Number of Ways
- Problem - 466C - Codeforces C. Number of Ways
- CodeForces - 466C Number of Ways (前后缀和)
- 面向对象和基于对象区别
- C++ 求一个矩阵的行列式的值(星星笔记)
- 深入理解linux内核学习目录内容
- 银河麒麟操作系统 14.04 完全版
- 【DP】 codeforces 466D Increase Sequence
- 【codeforces】 466C Number of Ways
- Windows USB功能驱动开发总结
- Spring3 MVC请求参数获取的几种方法总结
- 【BZOJ】【P1830】【AHOI2008】【Y型项链】【题解】【乱搞】
- Servlet调用过程
- windows程序设计简介
- Android集成ZXing二维码扫描,附加竖屏并且不拉伸图片的demo
- NSDictionary类使用
- 【leetcode】链表常见题目总结