- 博客(6)
- 收藏
- 关注
原创 Codeforces 735D Taxes
哥德巴赫猜想,一个偶数可以是两个质数之和,那么一个奇数x有三种情况:1.x本身是质数2.(x-2)是质数,那么可以拆成两个质数3.拆成一个质数和一个偶数,即三个质数
2016-11-28 15:46:05 399
原创 Codeforces 739B Alyona and a tree
dep[u] >= dep[v]-a[v],可以用二分在树链上找点u,并维护点u点的前缀和。代码:#includebits/stdc++.h>//#define make_pair MPusing namespace std;typedef __int64 ll;typedef pairll, int> PII;const int MAXN = 2e5+5;vec
2016-11-28 15:22:41 2637
原创 Codeforces 734F Anton and School
先由 x|y + x&y = x+y得到a序列。因为b序列是&运算,用位运算可以用a序列反推回b序列进行验证。代码:#includebits/stdc++.h>using namespace std;const int MAXN = 2e5+5;typedef __int64 ll;ll a[MAXN], b[MAXN], c[MAXN], num[MAXN];
2016-11-22 18:06:32 342
原创 Codeforces 733F Drivers Dissatisfaction
倍增LCA。代码:#includeusing namespace std;const int MAXN = 2e5+5;typedef long long ll;struct Edge { ll w, c; int u, v, id;}a[MAXN];struct info { int v, id;};vector G[MAXN];bool vi
2016-11-16 23:38:38 276
原创 Codeforces 733E Sleep in Class
容易得出,左边的'U'(包括自己)的数量大于右边的‘D’时,从字符串右端出去,反之从左边出去,即:if(sumu[i] else ans[i] += n-i+1;人在字符串内做左右来回运动,所以总距离为从出发点开始的所有右‘D‘-左‘U’的距离之和,知道出去为止,两个距离可以分开来求。代码:#includeusing namespace std;ty
2016-11-04 22:07:11 799
原创 HDU 5909 Tree Cutting
将树转换成有根数后进行点分治,对于每个重心u而言,v是它的子树,则:for(int j = 0; j m; j++) (dp[v][j^val[v]]+=dp[u][j])%=MOD;递归返回的时候得到:for(int j = 0; j m; j++) (dp[u][j]+=dp[v][j])%=MOD;时间复杂度是O(n*m*l
2016-11-01 14:28:02 258
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人