03 2018 档案

摘要:题解:给边赋上权值,然后求最大生成树,如果不符合那就无解 证明:留坑 阅读全文
posted @ 2018-03-30 22:32 ws_zzy 阅读(228) 评论(0) 推荐(0)
摘要:#include<iostream>#include<cstdio>#include<cstring>#include<vector>#include<queue>using namespace std;const int maxn=4000;const int oo=1000000000;int 阅读全文
posted @ 2018-03-30 22:31 ws_zzy 阅读(148) 评论(0) 推荐(0)
摘要:题解: 树上动态DP 阅读全文
posted @ 2018-03-27 11:30 ws_zzy 阅读(175) 评论(0) 推荐(0)
摘要:题解: 阅读全文
posted @ 2018-03-25 23:38 ws_zzy 阅读(151) 评论(0) 推荐(0)
摘要:题解: 可并大根对维护即可 注意long long 阅读全文
posted @ 2018-03-25 23:37 ws_zzy 阅读(129) 评论(0) 推荐(0)
摘要:题解: 高斯消元解期望方程 每条边算贡献 用边算不好算 算f(x)表示到x点的次数 f(x)=sigma(f(y))/size+1 对于1和n特判一下 然后n个方程n个未知数 阅读全文
posted @ 2018-03-25 23:35 ws_zzy 阅读(161) 评论(0) 推荐(0)
摘要:题解: 先求每个串的最长回文串 然后两个串的一定是一个串的某一个最长回文串向两边扩展 用后缀数组求 阅读全文
posted @ 2018-03-25 23:31 ws_zzy 阅读(250) 评论(0) 推荐(0)
摘要:题解: 我严重怀疑语文水平(自己的和出题人的) 把航线按照拓扑关系建立DAG 然后最小路径覆盖 为什么两条首尾相接航线之间不用维护???? 阅读全文
posted @ 2018-03-25 23:28 ws_zzy 阅读(419) 评论(0) 推荐(0)
摘要:题解: 计算每条边的贡献即可 用BFS 阅读全文
posted @ 2018-03-25 23:26 ws_zzy 阅读(140) 评论(0) 推荐(0)
摘要:题解:树套树 不会带修主席树,留坑 阅读全文
posted @ 2018-03-25 23:24 ws_zzy 阅读(161) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2018-03-22 21:15 ws_zzy 阅读(132) 评论(0) 推荐(0)
摘要:题解: 神题 我们二分一个答案k 在(a,b-k+1)中找一个与c的最长公公前缀 从c在rank数组中的位置向两边扩展直到min<k,边界(l,r) 然后在(l,r)中找到有没有(a,b-k+1)中的元素,主席树实现,差分 一但找到立刻return; 阅读全文
posted @ 2018-03-21 21:59 ws_zzy 阅读(168) 评论(0) 推荐(0)
摘要:题解: 发现根号里面只有根号种取值 枚举相同的取值,rmq计算最值即可 rmq取log要提前预处理 阅读全文
posted @ 2018-03-21 17:28 ws_zzy 阅读(187) 评论(0) 推荐(0)
摘要:题解: 注意看题!!!!! 注意p不是质数 注意随时取模 阅读全文
posted @ 2018-03-20 18:09 ws_zzy 阅读(163) 评论(0) 推荐(0)
摘要:题解: 题意不能说明白了????? 比例到底是数量还是价值?????? 平衡树维护凸包 阅读全文
posted @ 2018-03-20 16:35 ws_zzy 阅读(247) 评论(0) 推荐(0)
摘要:题解: 最小费用最大流 为每个师傅建一排点,表示这个师傅修的第几量车,然后他会对后面的人产生影响 阅读全文
posted @ 2018-03-20 16:35 ws_zzy 阅读(122) 评论(0) 推荐(0)
摘要:题解: 倍增维护线性基 线性基合并注意,少传参,浪费时间 阅读全文
posted @ 2018-03-20 16:34 ws_zzy 阅读(189) 评论(0) 推荐(0)
摘要:题解: DAG最小链覆盖=最长反链 然后DP就可以了 这道题网络流怎么建图??? 阅读全文
posted @ 2018-03-20 16:33 ws_zzy 阅读(125) 评论(0) 推荐(0)
摘要:题解: 最小链覆盖=最长反链 ans=n-Maxflow() 阅读全文
posted @ 2018-03-20 16:33 ws_zzy 阅读(162) 评论(0) 推荐(0)
摘要:题解: 如果选b[i][j]必须选c[i],c[j] 最大权闭合子图 阅读全文
posted @ 2018-03-20 16:32 ws_zzy 阅读(132) 评论(0) 推荐(0)
摘要:题解: f[i]=max(f[j])+1 (a[j]<=mn[i])&&(mx[j]<=a[i]) 用树套树维护三位偏序,cdq也可以 阅读全文
posted @ 2018-03-20 16:32 ws_zzy 阅读(157) 评论(0) 推荐(0)
摘要:题解: 不同集合付出代价 有朋友关系的两点之间连边 s向同意的连边,不同意的向t连边 如果本来相对的朋友(x,y)都改变 那么他们中间的边一定要被割掉,还是产生1的代价 阅读全文
posted @ 2018-03-20 16:09 ws_zzy 阅读(168) 评论(0) 推荐(0)
摘要:题解: 莫队 用组合数学算方案 又把计算顺序搞反了!!! 阅读全文
posted @ 2018-03-20 16:05 ws_zzy 阅读(160) 评论(0) 推荐(0)
摘要:题解: DP 观察发现病毒的形态,由一些弧并且每段弧有一个点连向中心 阅读全文
posted @ 2018-03-20 16:03 ws_zzy 阅读(192) 评论(0) 推荐(0)
摘要:题解: 神建图 普通的二分图费用流建完后 添加学生x->t 容量为k-1的边 表示尽量让x参加一个活动,剩下的k-1次机会可以不参加 阅读全文
posted @ 2018-03-20 15:56 ws_zzy 阅读(145) 评论(0) 推荐(0)
摘要:题解: 答案 x^s[n]^s[p-1] s是前缀异或 可持久化Trie树 按照二进制把数加进去 覆盖的路径权值+1 然后贪心找 用权值的差判断有没有这一位 阅读全文
posted @ 2018-03-20 15:53 ws_zzy 阅读(160) 评论(0) 推荐(0)
摘要:题解: !!!!!! 分类讨论,情况挺多 阅读全文
posted @ 2018-03-20 15:50 ws_zzy 阅读(126) 评论(0) 推荐(0)
摘要:题解: 从s向两端维护大于b的数和小于b的数即可 阅读全文
posted @ 2018-03-20 15:47 ws_zzy 阅读(111) 评论(0) 推荐(0)
摘要:题解: 解法一:用函数斜率什么的,不会,留坑 解法二: 某一个序列都变成一个值那么中位数最优 加入一个元素,与前面那一段区间的中位数比较 x>=mid什么事也不做 x<mid合并两端区间 不停向前合并 用大根可并堆维护中位数 阅读全文
posted @ 2018-03-20 15:45 ws_zzy 阅读(190) 评论(0) 推荐(0)
摘要:题解: 带标记可并堆 用可并堆维护可以到某个城池的士兵 维护小根堆 堆顶小于h时就弹出来计算 注意什么时候下放!! 阅读全文
posted @ 2018-03-20 15:40 ws_zzy 阅读(170) 评论(0) 推荐(0)
摘要:题解: 只会O(n log^2 n) O(n log n)先留坑 不开long long 0 分!!!! 阅读全文
posted @ 2018-03-20 15:37 ws_zzy 阅读(528) 评论(0) 推荐(0)
摘要:题解: 如果n是偶数那么一定可以用1*2长方形覆盖 Bob总是走到一个没被访问过的长方形 Alice胜 如果n是奇数 除掉(1,1)剩下的可以被1*2覆盖 然后Bob胜 阅读全文
posted @ 2018-03-20 15:23 ws_zzy 阅读(103) 评论(0) 推荐(0)
摘要:题解:分治 div(a,b,c,d,l,r) 表示处理在(a,b)(c,d)这个矩形内走,队列(l,r)中询问的答案 枚举较短中线上的点,求最短路 如果x,y不再同一侧,那么最短路一定经过中线,处理完毕 如果在同一侧,那么最短路可能经过也可能不经过中线,所以递归两边处理 犯过的SB错误: 把询问分组 阅读全文
posted @ 2018-03-19 07:08 ws_zzy 阅读(160) 评论(0) 推荐(0)
摘要:题解:我现在真的怀疑自己的语文水平 用f[i]表示以i为结尾的最长上升子序列 然后找前面的j转移 f[i]=max{f[j]}+1 (j<=i&&max[j]<=a[i]&&a[j]<=min[i]) 这是偏序关系,用树套树或CDQ分治解决 阅读全文
posted @ 2018-03-15 21:30 ws_zzy 阅读(187) 评论(0) 推荐(0)
摘要:题解: 打表找规律 总游戏的SG=子游戏的SG的Nim和 计算子游戏的SG(x)=mex(SG(next[x])) 用找规律加速计算 阅读全文
posted @ 2018-03-14 19:32 ws_zzy 阅读(138) 评论(0) 推荐(0)
摘要:题解: 动态图的连通性问题 离线下来,维护边权为删除时间的最大生成树 在知乎上看了一篇很好的文章,先留坑,以后补上 阅读全文
posted @ 2018-03-14 17:43 ws_zzy 阅读(210) 评论(0) 推荐(0)
摘要:题解: 线性规划转网络流 再次提醒自己别把变量的范围搞混了 然后用等式代表点,变量代表边,常量代表最终流向t还是由s流入,跑最小费用最大流 阅读全文
posted @ 2018-03-14 11:24 ws_zzy 阅读(132) 评论(0) 推荐(0)
摘要:题解: 带下界的费用流 对于x->y边权为z Addedge(x,t,1,0) Addedge(s,y,1,z) Addedge(x,y,inf,0) 然后对每个点Addedge(i,1,inf,0) 然后跑最小费用最大流即可 因为这是DAG,所以每一个循环流都是从1到某个点再到1的路径 也就是说用 阅读全文
posted @ 2018-03-14 10:58 ws_zzy 阅读(137) 评论(0) 推荐(0)
摘要:1、无源汇可行流 对每条边(from,to,cap)改造 cap=upper-lower inflow[to]+=lower outflow[from]+=lower 然后对每个点Addedge(s,i,inflow[i]),Addedge(i,t,ouflow[i]) 2、 有源汇可行流 Adde 阅读全文
posted @ 2018-03-14 08:47 ws_zzy 阅读(150) 评论(0) 推荐(0)
摘要:题解: 自己太弱了,还是想不到 贪心找到最后一个是1的然后翻转 阅读全文
posted @ 2018-03-14 07:44 ws_zzy 阅读(125) 评论(0) 推荐(0)
摘要:题解: 自适应Simpson积分 刘坑 不会正态分布 DP 阅读全文
posted @ 2018-03-14 06:34 ws_zzy 阅读(189) 评论(0) 推荐(0)
摘要:题解: 把每个字母表示成二进制 令sum[i]表示i的前缀异或 则一个区间是合法的条件是异或和=0或只有一位是1 上莫队,然后T了 优化先留个坑 阅读全文
posted @ 2018-03-13 21:51 ws_zzy 阅读(154) 评论(0) 推荐(0)
摘要:题解: 杜教筛 坑点 n+1会炸int 注意空间 到现在不会unsigned long long的输出 阅读全文
posted @ 2018-03-13 20:17 ws_zzy 阅读(167) 评论(0) 推荐(0)
摘要:题解: 建出圆方树 先求点双,然后每个点向点双代表的方点连边 然后树上差分一下 阅读全文
posted @ 2018-03-13 20:01 ws_zzy 阅读(200) 评论(0) 推荐(0)
摘要:题解: 乱搞 令x[i][j]表示(i,j)是否操作,a[i][j]表示状态 先假设都翻到0 则x[i][1]^x[i][2]^^^x[i][n]^x[1][j]^x[2][j]^^^x[n][j]^x[i][j]=a[i][j] 令d[i][j]=x[i][1]^x[i][2]^^^x[i][n] 阅读全文
posted @ 2018-03-13 19:59 ws_zzy 阅读(121) 评论(0) 推荐(0)
摘要:题解: 树形DP 思路,考虑每条边的贡献,即这条边两边的黑点数量相乘+白点数量相乘再成边长 阅读全文
posted @ 2018-03-13 19:52 ws_zzy 阅读(175) 评论(0) 推荐(0)
摘要:题解: woc竟然有个小地方没看出错来,WA了半天 DP一下 注意爆long long 阅读全文
posted @ 2018-03-13 19:40 ws_zzy 阅读(161) 评论(0) 推荐(0)
摘要:题解: 这题怎么也卡常数(自己常数大) 对于是x的位置令x='a'或'c' ('b') 然后用2sat验证即可 问题:缩点版的2sat还不会,貌似效率高 阅读全文
posted @ 2018-03-13 19:35 ws_zzy 阅读(278) 评论(0) 推荐(0)
摘要:题解: 这题有点卡常数(自己的常数大) 每30位压成一个数 思路1: 每次操作拆成最多两个位置的操作 每加一次最多会进1 每减一次最多会退1 然后用线段树维护最近的非0位和非满位 然后就是区间赋值和单点修改 好难写没写出来QWQ 思路2: 分两个数组记录加操作(A)和减操作(B) 用set维护所有的 阅读全文
posted @ 2018-03-13 19:32 ws_zzy 阅读(186) 评论(0) 推荐(0)
摘要:题解: 在一个环内的软件要么都安要么都不安 先缩点,然后这是一棵树 树形背包即可 阅读全文
posted @ 2018-03-13 19:21 ws_zzy 阅读(127) 评论(0) 推荐(0)
摘要:题解: 解题思路,发现式子的意义。 从nk个物品中选出%k为r个物品的方案数 然后DP 然后用矩阵快速幂加速 注意k==0的情况!!! 阅读全文
posted @ 2018-03-13 19:13 ws_zzy 阅读(149) 评论(0) 推荐(0)
摘要:题解: 阅读全文
posted @ 2018-03-13 18:42 ws_zzy 阅读(147) 评论(0) 推荐(0)
摘要:题解:斜率优化DP 用平衡树维护凸包 阅读全文
posted @ 2018-03-12 11:59 ws_zzy 阅读(302) 评论(0) 推荐(0)
摘要:题解: 求比值用分数规划,单个求太慢了套整体二分 然后求二分图最小割 阅读全文
posted @ 2018-03-11 21:55 ws_zzy 阅读(164) 评论(0) 推荐(0)
摘要:题解: 阅读全文
posted @ 2018-03-11 21:55 ws_zzy 阅读(97) 评论(0) 推荐(0)
摘要:题解: 树上Hash 首先重心在边上就把边分裂 以重心为根建树,这样两个根一定对应 然后f[i][j]表示i匹配另一棵的j节点的最小代价 把他们的儿子摘出来做最小权匹配即可 阅读全文
posted @ 2018-03-11 21:54 ws_zzy 阅读(185) 评论(0) 推荐(0)
摘要:题解: 首先要看出行列独立 令f[i]表示挂到i点的数量 则(i,j)的金币数量为f[i]*f[j] 然后数位DP求出f[i] 阅读全文
posted @ 2018-03-11 21:53 ws_zzy 阅读(121) 评论(0) 推荐(0)
摘要:题解: 阅读全文
posted @ 2018-03-11 21:52 ws_zzy 阅读(119) 评论(0) 推荐(0)
摘要:题解: 阅读全文
posted @ 2018-03-11 21:52 ws_zzy 阅读(107) 评论(0) 推荐(0)
摘要:题解:用树链剖分来维护树链剖分 令d[x]=size[heavyson[x]]-size[lightson[x]] 当d[x]<0时轻重儿子关系改变 用数据结构维护d[x]并找到这些位置改变即可 时间复杂度O(不会分析) 阅读全文
posted @ 2018-03-11 21:47 ws_zzy 阅读(590) 评论(0) 推荐(0)
摘要:题解:把边看成点 枚举每个点,在相邻的边之间连边,按照权值排序,建立一排前缀虚点和后缀虚点即可 点数边数都是O(n) 一开始用线段树优化建图没过 阅读全文
posted @ 2018-03-08 21:43 ws_zzy 阅读(179) 评论(0) 推荐(0)
摘要:题解:二分一个答案,<=mid设成0,>mid设成1 然后验证,每次排序相当于把两(一)段区间赋成0和1 阅读全文
posted @ 2018-03-08 21:41 ws_zzy 阅读(145) 评论(0) 推荐(0)
摘要:题解:构建最短路树,然后在上面点分治 一开始构建的思路是错的但是在Loj上A了 到现在还不明白为什么在BZOJ上T了QWQ,留坑 不要以为自己想的是对的 阅读全文
posted @ 2018-03-08 21:40 ws_zzy 阅读(146) 评论(0) 推荐(0)
摘要:题解:原来LCT也能维护子树信息,我太Naive了 用LCT维护当前子树节点个数 具体做法维护siz[x]=当前Splay子树和指向当前Splay子树的虚边所代表的节点个数 auxsiz[x]=指向x节点的虚边代表的节点个数 Link的时候x,y都要makeroot一下(针对我的写法) 然后就在LC 阅读全文
posted @ 2018-03-06 20:22 ws_zzy 阅读(127) 评论(0) 推荐(0)
摘要:题解:hash 至今不会unsigned long long 的输出 把B扔进map 找A[mid+1][lenA]在A[1][mid]中的位置 把A[1][mid]贴两遍(套路) 枚举A[mid+1][lenA]在A[1][mid]中出现的位置,把其他位置的hash值求出来,在map里查有多少符合 阅读全文
posted @ 2018-03-04 18:54 ws_zzy 阅读(248) 评论(0) 推荐(0)
摘要:题解:建出分层图,跑最短路 经验教训:一定要检查空间,并不都是开两倍的m!!!!!!!!!!!!!!!!!!!!!!!!!!! 仔细检查是否多开了一个0或少开了一个0 阅读全文
posted @ 2018-03-04 16:13 ws_zzy 阅读(144) 评论(0) 推荐(0)
摘要:题解:每个点向四个方向分别求最远点和最近点,用树状数组维护即可 阅读全文
posted @ 2018-03-04 11:44 ws_zzy 阅读(99) 评论(0) 推荐(0)
摘要:题解: 路径一定在直径上 取出直径来 在直径上枚举左右端点就可以了(A掉) 但是可能会被卡 所以枚举左端点,右端点单调,更新答案即可 WOC ST表竟然打错了 阅读全文
posted @ 2018-03-04 11:06 ws_zzy 阅读(129) 评论(0) 推荐(0)
摘要:题解: 第一问二分答案 第二问用f[i][j]表示前i块分成j段的方案数 但是MLE 于是改变枚举顺序 先枚举j,然后i这一层用滚动数组优化 f[i][j]=sigma f[k][j-1](sum[i]-sum[k]<=ans) 决策是一段区间,而且左端点单调,搞个指针维护最左的决策点 阅读全文
posted @ 2018-03-04 08:56 ws_zzy 阅读(176) 评论(0) 推荐(0)
摘要:题解:二分图建模 左边是人,右边是床 s向需要在学校的人连边 有床的人向t连边 认识的人互相连边 跑最大流与需要在学校的人数量是否相等比较、 阅读全文
posted @ 2018-03-04 08:16 ws_zzy 阅读(155) 评论(0) 推荐(0)
摘要:题解:线段树 一开始维护错区间和,然后GG,不要凭感觉 没把调试用的函数注释掉T了一发 阅读全文
posted @ 2018-03-03 20:58 ws_zzy 阅读(189) 评论(0) 推荐(0)
摘要:题解: 启发式合并主席树 时间复杂度O(nlogn*logn) 空间复杂度O(nlogn*logn) Woc初始的时候也用了启发式合并建图,然后RE成翔了 一开始算错了空间,下次注意 阅读全文
posted @ 2018-03-03 19:15 ws_zzy 阅读(153) 评论(0) 推荐(0)
摘要:题解:差分约束 怎么才可以卡掉Spfa与正反向建边的关系 在不T的情况下要多入队几次才能判出负环 出题人SangxinBingkuang 阅读全文
posted @ 2018-03-03 19:12 ws_zzy 阅读(141) 评论(0) 推荐(0)
摘要:#include #include #include #include using namespace std; const int maxn=500009; const int oo=2147483647; int T; int nn=0; int ch[maxn*50][2]={0},siz[maxn*50]={0},pri[maxn*50]={0},ky[maxn*50]={0}; in... 阅读全文
posted @ 2018-03-02 21:36 ws_zzy 阅读(200) 评论(0) 推荐(0)
摘要:题解:贪心,从高位到低位考虑这一位到底是1还是0 O(nlogn) 阅读全文
posted @ 2018-03-02 18:27 ws_zzy 阅读(173) 评论(0) 推荐(0)
摘要:题解:线段树 3操作的l,r没赋初始值竟然过了样例??? 阅读全文
posted @ 2018-03-02 15:06 ws_zzy 阅读(139) 评论(0) 推荐(0)
摘要:题解: 设N为任何人都没获胜的状态 设仅有两个人 A=TTH B=HTT 另P(NTTH)表示出现NTTH串的概率,为0.125 另P(A)表示A获胜的概率 跟距前后缀关系列方程 则P(NTTH)=P(A)+0.25P(B)+0.5P(B) 三个人的话同理即可 还有P(A)+P(B)==1 n+1个 阅读全文
posted @ 2018-03-02 14:57 ws_zzy 阅读(218) 评论(0) 推荐(0)
摘要:题解: SB的我打了无旋Treap,然后在洛谷上光荣的T了 BZOJ极限卡时A了 (每个初始位置后面加入的数)的影响是可以直接算的,然后初始位置之间的影响用平衡树(线段树)来维护即可 阅读全文
posted @ 2018-03-01 22:47 ws_zzy 阅读(148) 评论(0) 推荐(0)