摘要:
我,常数,大。 考虑记给出的可用集合为 \(a\),令 \(f[i][j]\) 为选 \(i\) 个数和为 \(j\) 的方案,则 \(ans=\sum_{i=0}^{5n}f[n/2][i]^2\)。 转移:\(f[i][j]=\sum f[i-1][j-x],x\in a\) 考虑记 \(g[x 阅读全文
摘要:
为什么这题还不错却没人写题解啊。 考虑序列不降时有什么性质:\(a_i-a_{i-1}\ge0,i\in(1,n]\) 考虑操作是区间同时加减,想到差分。 记 \(d_1=a_1,d_i=a_i-a_{i-1},i\in(1,n]\),那么我们要让 \(d_i\ge0,i\in[1,n]\) 每次操 阅读全文
摘要:
题目 首先,可以令 \(f[l][r]\) 为 \(s(l,r)\),\(f[l][r]=min(|a[l]-a[r]|,min(f[l+1][r],f[l][r-1]))\) 这样做是 \(O(n^2)\) 的。 考虑当 m 很小,n 很大时会出现什么。 显然会出现许多大小相同的数(鸽巢原理) 考 阅读全文
摘要:
我们可以发现 \(s->t\) 这条路径所经过的边的编号单增(且每条边的边号都是大于等于 \(l\)),假如不单增那么分界点后的边都不通。 那么,题目中的走一条边花费 1 就是废的。 对于一个询问,我们只需要把编号大于等于 \(l\) 的拉出去跑最短路即可。 考虑在线过不去,有点 图函数 的意思。 阅读全文
摘要:
考虑每个数只会删一次,意味着我们暴力找跟暴力删复杂度正确。 即问题变为 每个点是一个集合 对于路径 \((u,v)\) 找每个集合的元素的最小值 删去这个最小值 子树加 考虑树剖,集合的话可以用 vector+启发式合并 之类的去维护线段树中一个点的区间集合并集,但是我们只需要维护最小值,于是对于线 阅读全文
摘要:
想了 2 天好像还是只会带 log 的。 一上来,这不就是 #246. 【UER #7】套路,但第二个做法不是很好做。由于第一个做法是 \(O(n^2)\) 的,那就分块(块长为 \(T\))。整块的贡献很好做,对于每个块维护个值域前后驱就可以合并,大致就是记 \(f[l][r]\) 为块 l 与块 阅读全文
摘要:
考虑点分树,找到最浅的满足条件的点,那么所有连通块符合条件的一定能以它为根来统计到。 考虑一个点 \(y\) 满足能作为颜色集合中(但不一定对答案贡献),显然是 \(x\to y\) 的路径所经过的点都满足那个偏序关系。 转化为二位偏序即可,数颜色 HH 的项链,大致按 r 排序,维护最大的 l 来 阅读全文
摘要:
我们已经有了高于 \(n^{1.5}\) 的在线做法。 这东西就是套路,但按 CF765F Souvenirs 的方式维护点到块太难搞了。。。 因为前者算重没事。。。 所以等我明早起来再重构。。 \(f[i][j]:block_i \to block_j\) $$ g[i][j] :i \to R[ 阅读全文
摘要:
口胡。 考虑先点双找出来,对每条割边先按权升序排,再判断是否删了这条边后,s 到 t 就不在联通。跟我一样不怎么会维护的可以写个 LCT 就可以。 找割边,找所有可行路径方案,判 -1 的情况,接下来找到一条可行方案,找到上面权最小的割边,那么可以贡献答案。再者,可以删掉上面任一条边,再反复这个做法 阅读全文
摘要:
思考过程。无脑记录。 流量守恒:记 \(d(x)=in_x-out_x,d(x)=0\),因为上下界网络流经常这么表示,当然记 \(d(x)=out_x-in_x\) 也行。 减容量是可以舍弃的操作,因为减容量总是可以使用减流量解决或者会使其更不优。 再者,每条边给定的原始流量一定要先流满再说,所以 阅读全文