bzoj 3594

这个题还是挺可以的 如果能猜到每次必须加的区间一定是一个后缀那么就简单了 丢链接跑2333  

bzoj 3190

yy了一波做法 最后发现yy出来的其实就是半平面交233 判断直线是否有一段没有被任何直线覆盖

bzoj 3532

首先如果没有字典序最小的限制的话 就是一个拆点最小割(现想的233) 然后进行排序之类的 挨个扫一遍 如果是满流的就选上 lca:“现在问题在于如何删除一条边并维护最小割(最大流) 方法是:要...

bzoj 4519

自己口胡出来个做法 就是随便选两个点,然后做一次最小割,可以把点分成两个集合 跨越两个点集的答案就是这个值,其他的递归处理 这样分成的两个点集大小期望来算是n/2的 所以均摊log的吧,不知道233

BZOJ 2217 Poi2011 Lollipop

这题思路挺好的 预处理一下每个T后面有多少个连续的T,记为f数组 然后挨个枚举前缀和,如果是T,当前的值是sum 则前缀没出想sum-1 1、如果f[1]<f[i]则可以在前面一个W来替换T 2、f[1]>=f[i]...

bzoj 3514

这是个好题 以边的编号为权值 维护最大生成树 用LCT和魔法森林差不多, 记录一下加入这条边后cut的边的编号 如果没有cut边,那么a[i]=0 (假定记在a数组) 然后建一颗主席树 答案就是[l...

bzoj 3510

就是有link操作然后求重心 neither_nor:: 一棵树插入一个叶子节点之后,重心要么不变,要么向叶子的方向移动一条边,移动的条件是叶子所在的子树大小*2大于这棵树的大小(或者相等取编号小的)

bzoj 3530

竟然还可以再AC自动机上dp 用数组建AC自动机 然后f[i][j][k]表示到第i位,匹配到状态j,当前位k的方案数  

uoj 308

这题还是挺棒的 首先用颜色大于等于3的部分对答案没贡献 然后就是1和2,1可以特判,2可以二分图检测 题面 官方题解

bzoj 2177

题意就是标题 会发现每个点至于八个方向最近的点 的连边有可能在最小生成树种 然后就可以xjb搞了

bzoj 3578

集合哈希? 这个题要哈希一群人 怎么办呢 就是给每一个人随机一个值 然后用着群人的异或来充当hash 随机时一定要用奇怪的方法写

bzoj 4569

终于发了个有代码的 最近是和并差集刚上了 首先暴力可以并差集 所以正解也是并查集 二维的,f[i,j]表示i开头往后2^j个的情况 最后往下传一下就OK了 [crayon-59c5d99d7de5c171439799/]  

bzoj 2653

首先b格比较高的暴力是二分答案然后把区间变成+1-1什么的 所以就可以建主席树,按权值建,这样二分一个答案就可以查相应的+1-1要找的东西了

bzoj 3714

这题最小生成树,想不到吧 就是要求出所有s[i]的值 询问ij表示查询s[j]-s[i-1]的值,而s[0]已知 所以让所有点联通就好了

bzoj 1142

nkc:“若干次交换之后,之前在同一行的肯定还在同一行,之前在同一列的肯定还在同一列 所以我们通过每行第一个元素来判定交换后的每行对应之前的哪一行,再通过第一行的元素来判断交换后的每列对应之前的哪一...

bzoj 4550

这个首先有个暴力建图 还有这种方法来建图: 直接每个点依次排开,i->i+1连(k,0)【k是流量限制,0是费用】的边,然后对于一个区间[l,r]就l->r连(1,val);然后源点->1连(k,0),n->T一样,跑...

bzoj 4320

这个题要分段处理 在1~sqrt(n)这一部分可以暴力更新 然后其余的倒着做 把加点改成删点 然后用并查集跳过空的位置 查询是就直接find一下就好了 两部分询问复杂度都是sqrt(n)