【洛谷P5331】 [SNOI2019]通信】的更多相关文章

题面传送门 首先熟悉网络流的同学应该能一眼看出此题的建模方法: 将每个点拆成两个点 \(in_i,out_i\),连一条 \(S\to in_i\),容量为 \(1\) 费用为 \(0\) 的边 连一条 \(in_i\to T\) 容量为 \(1\) 费用为 \(W\) 的边,表示哨站 \(i\) 连向控制中心 连一条 \(out_i\to T\) 容量为 \(1\) 费用为 \(0\) 的边,表示每个哨站最多被后面一个哨站连接 对每对 \(i,j(i>j)\) 连一条 \(in_i\to ou…
洛谷 题意: \(n\)个哨站排成一列,第\(i\)个哨站的频段为\(a_i\). 现在每个哨站可以选择: 直接连接到中心,代价为\(w\): 连接到前面某个哨站\(j(j<i)\),代价为\(|a_i-a_j|\). 规定每个哨站只能被后面的至多一个哨站连接. 问最终最小代价和为多少. 思路: 直接费用流比较好想:每个点有两个选择,我们将点拆为两个点\(x_i,y_i\),然后 \(S->x_i\)容量为\(1\),费用为\(w\): \(S->y_i\)容量为\(1\),费用为\(0…
考虑用费用流解决本题. 每个哨站看作一个点,并将其拆为两个点,建图方式为: \(S \longrightarrow x_i\) 容量为\(1\),费用为\(0\) \(x_i \longrightarrow T\) 容量为\(1\),费用为\(w\) \(x_i \longrightarrow x^\prime_j\ (i>j)\) 容量为\(1\),费用为\(|a_i-a_j|\) \(x^\prime_i \longrightarrow T\) 容量为\(1\),费用为\(0\) 这样就可以…
题目大意:给一个长度为$n$的字符串$s$,字符串$p_i$为字符串$s$去掉第$i$个字符后形成的字符串.请给所有字符串$p_i$排序(相同字符串按编号排序) 题解:先去掉所有连续相同字符,因为它们形成的字符串一定相同(也就是说只按编号排序).然后发现对于两个字符串$p_i,p_j(i<j)$只需要比较$s_i$与$s_{i+1}$的大小就可以比较这两个字符串的大小.即$p_i$只会排在$p_{i+1}\sim p_n$的前面或后面.所以可以用链表解决 卡点:无 C++ Code: #incl…
传送门 有匹配次数限制,求最小代价,这显然是个费用流的模型.每个点暴力和前面的点连匹配边,边数是\(n^2\)的. 然后发现可以转化成一个set,每次加入一个点,然后入点对set里面的出点连边.这个set可以用主席树实现,然后就主席树优化连边,点数边数都是\(nlogn\)的,然后就能过了 注意这里连边要把一个点入点拆成两个\(a_i,-a_i\),出点同理,然后假设\(a_i\)在set的第\(p\)位,\(a_i\)在负权值主席树上连区间\([1,p-1]\),\(-a_i\)在正权值主席树…
正解:字符串 解题报告: 传送门$QwQ$ 有两个很妙的方法,分别港下$QwQ$ 首先为了表示方便,这里和题面一样设$s_i$表示去掉第$i$个字母得到的字符串.另设$lcp(i,j)$表示$suf_i,suf_j$的最长公共前缀 考虑现在如果要比较$s_i$和$s_j$.不妨设$i<j$ 首先显然的是$i$之前和$j$之后的字符串都是一样的,于是现在就只要比较$[i,j]$这一段了. 考虑先求出$lcp(i,i+1)$,若$lcp(i,i+1)$的前缀长度大于等于$[i,j]$这一段的长度了,…
正解:数论 解题报告: 传送门$QwQ$ ,,,这题还蛮妙的$QwQ$(,,,其实所有数论题对我来说都挺妙的$kk$然后我真的好呆昂我理解了好久$QAQ$ 考虑先建$Q$个点,编号为$[0,Q)$,表示膜$Q$的余数.然后每个点$i$向$(i+P)\ mod Q$连边$QwQ$ 显然这个是会成环的,事实上这个环的长度就$\frac{P\cdot Q}{gcd(P,Q)}$(不明白的可以去康那道很古早的考过好几遍了的跑跑步那题?那题不是证了个结论是说.在膜$Q$意义下每次走$P$,只会有$gcd(…
这题真让人自闭-我EK费用流已经死了?- (去掉define int long long就过了) 我建的边害死我的 spfa 还是spfa已经死了? 按费用流的套路来 首先呢 把点 \(i\) 拆成两个点 \(i\) 和 \(i'\) 令 \(i'\) = \(i+n\) 对任意的 \(i\) 点 建 \(s -> i' -> t\) 表示这个连到控制中心- \(s -> i -> j ->t\) 表示连到某个哨站-流量为\(1\) 费用为 |\(a_i -a_j\)| 其中…
洛谷P1345 [USACO5.4]奶牛的电信Telecowmunication[最小割]分析+题解代码 题目描述 农夫约翰的奶牛们喜欢通过电邮保持联系,于是她们建立了一个奶牛电脑网络,以便互相交流.这些机器用如下的方式发送电邮:如果存在一个由c台电脑组成的序列a1,a2,-,a(c),且a1与a2相连,a2与a3相连,等等,那么电脑a1和a(c)就可以互发电邮. 很不幸,有时候奶牛会不小心踩到电脑上,农夫约翰的车也可能碾过电脑,这台倒霉的电脑就会坏掉.这意味着这台电脑不能再发送电邮了,于是与这…
题目描述 农夫约翰的奶牛们喜欢通过电邮保持联系,于是她们建立了一个奶牛电脑网络,以便互相交流.这些机器用如下的方式发送电邮:如果存在一个由c台电脑组成的序列a1,a2,...,a(c),且a1与a2相连,a2与a3相连,等等,那么电脑a1和a(c)就可以互发电邮. 很不幸,有时候奶牛会不小心踩到电脑上,农夫约翰的车也可能碾过电脑,这台倒霉的电脑就会坏掉.这意味着这台电脑不能再发送电邮了,于是与这台电脑相关的连接也就不可用了. 有两头奶牛就想:如果我们两个不能互发电邮,至少需要坏掉多少台电脑呢?请…