11 2015 档案
摘要:因为允许5%的误差..把连续一段的j-i看作一个数..然后记个前缀和就好了...-------------------------------------------------------------------------#include#include#include#includeusing...
阅读全文
摘要:首先要知道一种prufer数列的东西...一个prufer数列和一颗树对应..然后树上一个点的度数-1是这个点在prufer数列中出现次数..这样就转成一个排列组合的问题了。算个可重集的排列数和组合数就行了...要写高精..--------------------------------------...
阅读全文
摘要:题目戳这里:51NOD算法马拉松8某天晚上kpm在玩OSU!之余让我看一下B题...然后我就被坑进了51Nod...A.还是01串水题..怎么乱写应该都可以。记个前缀和然后枚举就行了.时间复杂度O(N)#include#include#includeusing namespace std;const...
阅读全文
摘要:先最短路预处理, 然后状压就行了--------------------------------------------------------------------------#include#include#include#include#includeusing namespace std;...
阅读全文
摘要:对于d, 记{ai}中是d的倍数的数的个数为c, 那么有:直接计算即可,复杂度O(NlogN+MlogM)---------------------------------------------------------------------------#include#include#inclu...
阅读全文
摘要:打个表找一下规律可以发现...就是卡特兰数...卡特兰数可以用组合数计算。对于这道题,ans(n) = C(n, 2n) / (n+1) , 分解质因数去算就可以了...-----------------------------------------------------------------...
阅读全文
摘要:对于询问[L, R], 我们直接考虑每个p(L≤p≤R)的贡献,可以得到然后化简一下得到这样就可以很方便地用线段树, 维护一个p, p*vp, p*(p+1)*vp就可以了----------------------------------------------------------------...
阅读全文
摘要:BZOJ先剧透了是矩阵乘法...这道题显然可以f(x) = f(x-1)*10t+x,其中t表示x有多少位。这个递推式可以变成这样的矩阵...(不会用公式编辑器...), 我们把位数相同的一起处理, 那么10^t就可以确定,加上快速幂就行了------------------------------...
阅读全文
摘要:字符串哈希..然后枚举每一位+各种判断就行了--------------------------------------------------------------------------------#include#include#includeusing namespace std;type...
阅读全文
摘要:最小割..S连每个人(容量:选择理科的愉悦);每个人连T(容量:选择理科的愉悦) .对于每一组(x, y, w)x和y同选理增加的愉悦w,新建节点V,V连x(INF),V连y(INF), S连V(w)对于每一组(x, y, w)x和y同选文增加的愉悦w,新建节点V,x连V(INF),y连V(INF)...
阅读全文
摘要:一维离散化, 扫描线扫另一维, 用线段树维护POJ建议交C++...G++貌似double要用%f ? 反正同一份代码C++AC,G++WA-------------------------------------------#include#include#include using namesp...
阅读全文
摘要:有限制的最多就K个, 所以我们处理一下这K个就行了. 其他可以任选, 贡献都是∑i (1≤i≤N), 用快速幂。-------------------------------------------------------------------#include#include#includeusi...
阅读全文
摘要:把图反向,然后按拓扑序贪心地从大到小选, 最后输出。set比priority_queue慢...---------------------------------------------------------------------#include#include#include#includeu...
阅读全文
摘要:靠着暴力+直觉搞出递推式 f(n) = ∑F(i)f(n-i) (1≤i≤n) (直接想大概也不会很复杂吧...). f(0)=0感受一下这个递推式...因为和斐波那契有关..我们算一下f(n)+f(n+1)...f(n)+f(n+1)= F(1)f(n-1)+F(2)f(n-2)+…+F(n)f(...
阅读全文
摘要:虽然AC了但是时间惨不忍睹...不科学....怎么会那么慢呢...无修改的区间众数..分块, 预处理出Mode[i][j]表示第i块到第j块的众数, sum[i][j]表示前i块j出现次数(前缀和,事实上我是写后缀和..因为下标从0开始..), cnt[i][j][k]表示第i块中的前j个数中,k出...
阅读全文
摘要:枚举Fl, 就变成一个整数划分的问题了...f(i,j) = f(i-j,j-1)+f(i-j,j)-f(i-N-1,j-1)递推。f(i,j)表示数i由j个不同的数组成,且最大不超过N的方案数-----------------------------------------------------...
阅读全文
摘要:n1+n2次一定可以满足..然后假如之前土地集合S1的子集subs1和之后土地集合S2的子集subs2相等的话...那么就少了2个+操作...所以最后答案就是n1+n2-少掉的最多操作数, 由状压dp完成...---------------------------------------------...
阅读全文
摘要:用个set维护就可以水过去...O(NlogN)应该可以用单调队列O(N)....----------------------------------------------------------------------#include#include#include#includeusing n...
阅读全文
摘要:把暗恋关系看成无向边, 那某个点度数超过2就无解。存在环也是无解。有解的话对连通分量进行排列就行了。----------------------------------------------------------------------------------#include#include#i...
阅读全文
摘要:dp(i)表示处理完[i,n]且i是放守卫塔的最小费用.dp(i) = min{dp(j) + (j-i)(j-i-1)/2}+costi(i#include#includeusing namespace std;typedef long long ll;#define f(x) (dp[x] * ...
阅读全文
摘要:高斯消元解xor方程组...暴搜自由元+最优性剪枝-----------------------------------------------------------------------------#include#include#include#includeusing namespace ...
阅读全文
摘要:高斯消元解异或方程组...然后对自由元进行暴搜。树形dp应该也是可以的...--------------------------------------------------------------------------------------#include#include#include#i...
阅读全文
摘要:直接点分治, 用平衡树(set就行了...)维护.-------------------------------------------------------------------------------------#include#include#include#include#include...
阅读全文
摘要:树形dp...dp(x, 0)表示结点x不放士兵, 由父亲控制;dp(x, 1)表示结点x不放士兵, 由儿子控制;dp(x, 2)表示结点x放士兵.----------------------------------------------------------------------------...
阅读全文
摘要:-----------------------------------------------------------------------#include#include#includeusing namespace std;const int MOD = 10000;const int max...
阅读全文
摘要:把双向边拆成2条单向边, 用边来转移...然后矩阵乘法+快速幂优化---------------------------------------------------------------------------------------------#include#include#include...
阅读全文
摘要:贴个代码...---------------------------------------------------------------------#include#include#includeusing namespace std;const int maxn = 200009;const ...
阅读全文
摘要:题目大意:给一个字符串S,令F(x)表示S的所有长度为x的子串中,出现次数的最大值。F(1)..F(Length(S))建出SAM, 然后求出Right, 求Right可以按拓扑序dp..Right就是某个点到结束状态的路径数, parent树上last的那一条链都是结束状态...然后用Right去...
阅读全文
摘要:把串S复制成SS然后扔进后缀自动机里, 从根选最小的儿子走, 走N步就是答案了...一开始还想写个treap的...后来觉得太麻烦..就用map了...--------------------------------------------------------------------------...
阅读全文
摘要:day0坐动车到广州..下午就在酒店颓...day1早上6:30起床...大概8:00到六中..ZSJZ众貌似很晚才到..毕竟他们酒店就在学校门口(真的就刚刚好是门口...),大概8:15进去机房..试机时很无聊..不知道敲什么好,写了点头文件然后就等着比赛开始。解压密码是 niNaliXiaxue...
阅读全文
摘要:时间过得好快...明天就要出发去NOIP了...然后再过半年就要省选了....希望自己能取得好成绩吧...NOIP2015 bless all !
阅读全文
摘要:枚举第一个的情况...判断一下是否冲突...------------------------------------------------------------------#include#include#includeusing namespace std;const int maxn = 1...
阅读全文
摘要:dp(l, r)表示[l, r]这段作为一棵树的最小访问代价.对于dp(l, r), 我们枚举它的根x, 则dp(l, r) = min(dp(l, x-1)+dp(x+1, r)+C*fx) + K*∑fi (l≤i≤r)--------------------------------------...
阅读全文
摘要:把障碍点看做点(边)权为1, 其他为0. 对于每个点跑spfa, 然后和它距离在T以内的就可以更新答案------------------------------------------------------------------------#include#include#include#in...
阅读全文
摘要:找出同时在他们最短路上的边(dijkstra + dfs), 组成新图, 新图DAG的最长路就是答案...因为两人走同一条路但是不同方向也可以, 所以要把一种一个的s,t换一下再更新一次答案-------------------------------------------------------...
阅读全文
摘要:dp(i,j,k)表示在处理第i个业务, 另外2个在j,k处. 第一维可以滚动...--------------------------------------------------------------------------------#include#include#includeusin...
阅读全文
摘要:O(S²)枚举2个诅咒机, 然后O(n²)BFS去判断. 构成一个有向图, tarjan缩点, 然后就是求DAG的最长路..-----------------------------------------------------------------------------#include#in...
阅读全文
摘要:难得的ZJOI水题...DFS一遍就行了...-----------------------------------------------------------------------#include#include#include#includeusing namespace std;cons...
阅读全文
摘要:dp(x, y)表示第x根柱子上y个盘子移开后到哪根柱子以及花费步数..然后根据汉诺塔原理去转移...-----------------------------------------------------------------------#include#include#includeusin...
阅读全文
摘要:好像很多人用并查集写的...前缀和, 则 sumt- sums-1= v, 拆成2条 : sumt ≤ sums-1 + v, sums-1 ≤ sumt - v 就是一个差分约束, 建图跑SPFA..想起之前codeVS某场月赛T1有些人用带权并查集..然而我是差分约束水过去的...-------...
阅读全文
摘要:O(N2)算出有x条直径然后答案就是x(x-1)/2...这个数据范围是闹哪样!------------------------------------------------------------------------------------------#include#include#inc...
阅读全文
摘要:取最大的K个, 用堆和RMQ来加速...-----------------------------------------------------------------#include#include#include#includeusing namespace std;typedef long ...
阅读全文
摘要:按t2排序然后贪心...----------------------------------------------------------------------------#include#include#include#includeusing namespace std;const int ...
阅读全文
摘要:只要存在N个x, y坐标均不相同的黑格, 那么就一定有解. 二分图匹配, 假如最大匹配=N就是有解的, 否则无解----------------------------------------------------------------------------------#include#inc...
阅读全文
摘要:可以得到N条N元一次方程, 高斯消元就OK了..时间复杂度O(N3)-------------------------------------------------------------------#include#include#include#includeusing namespace s...
阅读全文
摘要:2-sat...假如一个评委喜好的2样中..其中一样没做, 那另一样就一定要做, 这样去建图..然后跑tarjan. 时间复杂度O((n+m)*K)----------------------------------------------------------------------------...
阅读全文
摘要:求出前缀和, 那么以第x个元素结尾的最大异或值是max(sumx^sump)(1≤p#include#include#includeusing namespace std;const int maxn = 400009;const int n = 31;int read() { char c = g...
阅读全文

浙公网安备 33010602011771号