XJ - 铳鸭
题面
确实是原题 BZOJ3838
题解
考虑 模拟费用流(显然跑费用流铁定 TLE ,故这里只是 模拟 ,来发现其本质在干哈):
考虑建图:
建 nnn 个点 ,∀i∈[1,n),i→i+1\forall i\in[1,n),i\to i+1∀i∈[1,n),i→i+1 连边容量 +∞+\infty+∞ 费用 000。
建源汇点 s′,ts',ts′,t ,对于所有 (,s′→is'\to is′→i 容量 111,费用为该位置代价; 对于所有 ),i→ti\to ti→t 容量 111,费用为该位置代价
实际源点 sss 向 s′s's′ 连边,容量为 k/2k/2k/2,费用为 000
以上建图正确性显然,跑最小费用最大流就完事了,现在来考虑以下这实际在干嘛。
在做费用流时,每次最短路增广一单位流量,如上图 橙/绿 线就是一次合法增广。对于一次增广,如橙线经过的两端点 a,ba,ba,b 就是这次选中的括号,显然是一个左括号一个右括号。再考虑这个图上增广路不可能从 s′s's′ 出去再绕到 s′s's′ ,也就是说之前某 ...
cubelia
题意
定义一个长度为 nnn 的序列 AAA 的最大前缀和 maxpre(1,n)\mathrm{maxpre}(1,n)maxpre(1,n) 为 maxi=1nsumi\max_{i=1}^{n}sum_imaxi=1nsumi ,其中 sumi=∑i=1nAisum_i = \sum_{i=1}^n A_isumi=∑i=1nAi
现给你长度为 nnn 的序列 aaa,以及 mmm 个询问 qqq ,每次给出 l,rl,rl,r ,让你求出 ∑i=lr∑j=irmaxpre(i,j)\sum_{i=l}^{r}\sum_{j=i}^{r} \mathrm{maxpre}(i,j)∑i=lr∑j=irmaxpre(i,j)
强制在线, n≤2×106,q≤107n\leq 2\times 10^6,q\leq 10^7n≤2×106,q≤107
题解
把 maxpre(l,r)\mathrm{maxpre}(l,r)maxpre(l,r) 拆开来看,那么 maxpre(l,r)=maxi=lrsumi−suml−1\mathrm{maxpre}(l,r) = \ ...
XJ - 合唱队形
92ce3867a25b048540c10275d83b5b1fe4f80d07b2eaafcdfcbf1cce59685beccc932a92d7c1af1ffe6333b2335c25c24a4b446e776118a63f5ab377f3b29a07eb144743c4dcaa9e93e65e7216ea7783976ac81a3f42994bc725ea996c4594fc24d4ab9c9e17c1357a70bd5a595dfcd67e0a693e37605b51a9d6b19b3dc9df8be64d6c9b462d5ef9b2ca27f277fe54046ab5bdf17bb04ca9a7612374a24fbd9c07a81c79e1eda33f98e7a8964649081b9fbb9ee7a9b2fe2c05e15bc475c5f76edd445f5aaf218a5584e081dde8304e5024013826ae1fce0ebe611062c3ec73d82e0863c6399a84a846ac40d1f40e1245fe103b9ab713e97a2 ...
XJ - 背包++
92ce3867a25b048540c10275d83b5b1fcae42cedd78a1cf9bb795acf5b256f84f53bd16814341096751747906883aa2b82acaf615dec55c8f33ae90e666ea560af46bf723b1b61c1c8e21ddfb18c6b15ac1ee423bada32ac87bfdc56b44d7700fc5d11eccc746898e450b7e57cab245d492141469e7d8de86a1f05464c77573a9332f3eb54fdb1ef69893d9eba4956eef155f02e2f12d0fadc5886cf75da96432394dd12bf80276d90e1218dd72c8b1d666b3386fcbdf40d418153e9c2bd9a700696417b38ff7d24f72a9bf0cd6ca84ee2918e7107e04e2c0a98d0722e9dcb9f3e28fc1f487f1d17a777696f29913aa233663a3b7be567c74 ...
杜教筛
在非线形时间内筛某些奇性函数前缀和
狄利克雷卷积
(f∗g)(n)=∑d∣nf(d)g(nd)(f\ast g)(n)=\sum_{d\mid n} f(d)g(\tfrac{n}{d})
(f∗g)(n)=d∣n∑f(d)g(dn)
一些结论,会用到( 注: I(n)=1,id(n)=n,ϵ(n)=[n=1]I(n)=1,id(n)=n,\epsilon(n)=[n=1]I(n)=1,id(n)=n,ϵ(n)=[n=1] )
φ∗I=idμ∗I=ϵμ∗id=φ\begin{aligned}
\varphi \ast I=id\\
\mu \ast I=\epsilon\\
\mu \ast id=\varphi
\end{aligned}
φ∗I=idμ∗I=ϵμ∗id=φ
线性筛 φ,μ\varphi,\muφ,μ
12345678910111213141516171819const int N = 100000;int p[N],tot;ll phi[N],mu[N];bool v[N];void init(int n) { for(int i=2;i&l ...
本质不同基环树计数 & Burnside
题意
给一颗 nnn 个点的内向基环树,每个点的出度为一,每个点可染 mmm 种颜色,求本质不同的染色方案数。 mod 109+7\bmod 10^9+7mod109+7
m≤109,3≤n≤105m\le 10^9,3\le n\le 10^5
m≤109,3≤n≤105
题解
基环树一个重要的特征是环,考虑先算出环上每个点对应子树的染色方案数。
其中要判断两颗子树是否同构,需要树哈希:
按照 dfs 序可以将树上结点对应到序列上,在序列上填上对应结点的深度,如上图得到序列为:
12333232\begin{array}{c}
1&2&3&3&3&2&3&2
\end{array}
12333232
显然,根据序列可以还原出形态唯一的树。那么树哈希便转换成了序列上的哈希。具体的,需要递归处理,记 hash(u)hash(u)hash(u) 为 uuu 子树的哈希值,初始 hash(u)=depuhash(u)=dep_uhash(u)=depu ,插入 vvv 子树,就相当于两个序列接起来,hash(u)′ ...
ZJOI2014力
ZJOI2014力
题意
给出 nnn 个数 q1,q2,…qnq_1,q_2, \dots q_nq1,q2,…qn ,定义
Fj=∑i=1j−1qi×qj(i−j)2−∑i=j+1nqi×qj(i−j)2F_j=\sum_{i=1}^{j-1} \frac{q_i\times q_j}{(i-j)^2} - \sum_{i=j+1}^n \frac{q_i\times q_j}{(i-j)^2}
Fj=i=1∑j−1(i−j)2qi×qj−i=j+1∑n(i−j)2qi×qj
Ei=FiqiE_i=\frac{F_i}{q_i}
Ei=qiFi
对于 1≤i≤n1\le i\le n1≤i≤n ,求 EiE_iEi 的值。1≤n≤105,0<qi<1091\le n \le 10^5 ,0\lt q_i \lt 10^91≤n≤105,0<qi<109 .
题解
Ej=∑i=1j−1qi(i−j)2−∑i=j+1nqi(i−j)2Ej=∑i=0jqi(i−j)2−∑i=jnqi(i−j)2E_j=\sum_{i=1}^ ...
网络流最小割
网络流最小割相关
最小割等于最大流,最小割可以用最大流求的,那么重点在于如何建模,将要求的东西转换为最小割。
最小割求方案
随便输出一种方案只要在残量网络上从源点 BFS ,能到的点在 SSS 集合中,不能到的点在 TTT 集合中,∀(u,v),u∈S,v∈T\forall (u,v),u\in S ,v\in T∀(u,v),u∈S,v∈T 且 u,vu,vu,v 满流则该边属于最小割集。
最小割可行边
就是在某个最小割集中出现的边,设边 (u,v)(u,v)(u,v) ,其为可行边的充要条件:
该边满流 。
残量网络上不存在 uuu 到 vvv 的增广路。
若不满流显然可以找到另一条更小的满流的限制流量的边。
若满流但在残余网络中能找到入点到出点的路径,那么需要同时割掉这条边和残余网络中路径上某条边才能实现“割”,而这两条边上的流量和一定等于其他某条或某几条满流的边的流量和,否则可以继续增广,又因为位于残余网络上的那条边一定不满流,所以这种割法不是最小割。
判断一条边是否可行直接 BFS 即可,单次 O(n)O(n)O(n)
如果在同一个图上大量判断,可以用 tarjan ...
SDOI2014 - LIS
LOJ - 2196
题意
给定长度为 NNN 序列 AAA ,序列中的每一项 AiA_iAi 有删除代价 BiB_iBi 和附加属性 CiC_iCi。
请删除若干项,使得 AAA 的最长上升子序列长度减少至少 111,且付出的代价之和最小,并输出方案。如果有多种方案,请输出将删去项的附加属性排序之后,字典序最小的一种。
N≤700N\le 700
N≤700
题解
求 LIS 跑一遍 DP 即可,记最大的 DP 值为 mxdpmxdpmxdp ,从 DP 值等于 mxdpmxdpmxdp 的位置倒推回去,按转移关系建边得到一个转移图,显然入度为零的都是 DP 值为一的,出度为零的都是 DP 值为 mxdpmxdpmxdp 的。现在就是要求最小的代价使入度为零的点与出度为 mxdpmxdpmxdp 的点不连通。
那不就是最小割吗。具体建图:
超级源点 SSS 连向所有 DP 值为零的点,边权 +∞+\infty+∞
所有 DP 值为 mxdpmxdpmxdp 的点连向超级汇点 TTT 边权 +∞+\infty+∞
对于所有 dp[u]+1=dp[v],u<v,Au&l ...
XJ-集合
92ce3867a25b048540c10275d83b5b1f57ade36a2745a4b0c5bf6d67dbc1855ffb7c33e3e5663e0b924a29d38efca9b70565ef7dcb1cfcc08865ebc56d49155e1c15df800a9f8e15c262c377b3e98a3c23d205f6502cfff80ca2639a858f7d831ca4738b42fe37dc5932c05bc681ebbd84337743966ca67ae18a8afe606ccf5e409e05d839de2de3e50655df78b652c3523e4e5eae8f55440c81ee99744363d70afe06a872d3447c8ca8c6c13d91d21c6f781432669d65f2299fcb3e4e3fc0ccf982bc19a17368730ab5b6a6b60b65a9ca9dfd0a264531cbeeb784be8c5d863985e6b9c270ce34be19511ca3181ccd4bf69b9ea471a3f752c ...