摘要:
f[i = 以i结尾][j = 长度为j] = 方案数。f[i][j] = sum{ f[i-j][k] , k s(i-2*j+1,j) ) }转移为O(N^3)需要优化,对于k using namespace std;typedef long long ll;const int N = 5e3... 阅读全文
摘要:
E. Minimum spanning tree for each edgetime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputConnected ... 阅读全文
摘要:
D. Gadgets for dollars and poundstime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputNura wants to b... 阅读全文
摘要:
枚举子序列的末尾,递推。方案数:f[i = 以i结尾][k =子序列长度] = sum(f[j][k-1]),j using namespace std;typedef long long ll;const int N = 1e5+5, K = 10;ll C[K][N];ll sum(ll C[]... 阅读全文
摘要:
这道题不难想到这样的dp。dp[字符串si] = 以si为结尾的最大总权值。dp[si] = max(dp[sj]) ,1.j #include#include#includeusing namespace std;const int LEN = 3e5+5;const int MAXN = 2e4... 阅读全文
摘要:
题意:珠宝大盗Arsen Lupin偷珠宝。在展厅内,每颗珠宝有个一个坐标为(xi,yi)和颜色ci。Arsen Lupin发明了一种设备,可以抓取平行x轴的一条线段下的所有珠宝而不触发警报,唯一的限制是抓取的珠宝不能不能有所有的m种颜色。询问能抓取的最大珠宝数量。分析:要决策的东西有两个,一是这条... 阅读全文
摘要:
题面:从前有一个国家,国家里面的城市是树形结构的。这个国家的国王是个萝莉控,爱上了一个小恶魔。小恶魔喜欢制造混乱,经常让国王修改城市之间的道路系统。每条道路有两种颜色,黑与白。修改有两种,一是把城市a和b之间的道路全部翻转颜色,二是把城市a和b之间道路的相邻路翻色。国王的萝莉女儿,WJMZBMR很关... 阅读全文
摘要:
分析:无论父节点增加了多少,子节点的增量总比父节点多1。这种差分的关系是保存不变的,我们可以一遍dfs根据结点深度得到在根结点的每个点的系数。估且把一开始的结点深度称做c0吧,对于子树的修改就只是结点的系数就只是c0+d,d是修正值。dfs得到树的dfs序列,子树的结点连续,就变成区间更新了。区间更... 阅读全文
摘要:
题意:询问树上结点x到结点y路上上的权值异或z的最大值。任意结点权值≤ 2^16,可以想到用字典树。但是因为是询问某条路径上的字典树,将字典树可持续化,字典树上的结点保存在这条路径上的二进制数。按照dfs序建树,结点u的字典树表示u到根结点路径上的字典树。如果两个结点u和v,在同一条通往根结点的路径... 阅读全文
摘要:
计算出中轴能覆盖到某个点的极角范围,最大覆盖次数即是答案。首先把中轴和点重合,此时中轴的角度为theta = atan(y/x),然后以原点为圆心旋转点和抛物线相交求出之间的夹角,把x = a*y*y 化成极坐标下r cosθ = a *r *r (1 - cos2θ) ,解方程得到极角范围应该为[... 阅读全文
摘要:
先离散,在树上建主席树,主席树具有加减性。那么u和v的路径上的线段树 = Tree(u) + Tree(v) - Tree(lca(u,v))- Tree(fa(lca(u,v)))。不懂的画个图就清楚了。把建可持续化的部分改成迭代了,效率更高了。/*************************... 阅读全文
摘要:
树的轻重链剖分。http://blog.sina.com.cn/s/blog_7a1746820100wp67.html剖分完了以后一条路径等同在O(logn)条连续的线段。每次是区间修改,只要单点的最后结果,可以用部分和来维护。对于各个点的回答,用以谷物为下标的线段树维护谷物的最值。O(nlog^... 阅读全文
摘要:
筛法+划分树。枚举因子,类似筛法计算因子数量,复杂度为n/2 + n/3 + ... + n/n ≈O(nlogn)。值域已知,只有删除操作,寻找kth,用划分树就好了O(nlogn)。二分+树状数组也可以,只是复杂度多乘一个logn。/*******************************... 阅读全文
摘要:
昊昊爱运动 II Time Limit: 3000/1000MS (Java/Others) Memory Limit: 65535/65535KB (Java/Others)昊昊喜欢运动他N天内会参加M种运动(每种运动用一个[1,m]的整数表示)现在有Q个操作,操作描述如下昊昊把第l天到第r天的... 阅读全文
摘要:
先用dijkstra把最短路树建出来,然后就是树的质心分治了。经过k个点的路径,要么全在子树上,要么经过根结点,因此可以分治。如果分治的时候选点不好会变成O(n^2),比较极端的情况是比如树是一条链。选择质心可以保证最大子树结点不超过n/2,每次递归至少减半,递归层数是O(logn)的。找子树质心是... 阅读全文