灵光一现的trick

感觉平时会丢掉好多挺好的trick……

图论

1.图G,固定S,T。可以将任意一条边加上权值$k(k>0)$,求最大化加权后最短路。

2.图G,固定S,T。可以将任意一条边乘以权值$k(k>0)$,求最大化加权后最短路。

3.有一个DAG森林,问至少加多少条边使得整张图强连通?

ans:我的想法是这样考虑:

先在基图中考虑每一个连通块,并且暂时不管原图中它们的连通性。记基图中连通块个数为$k$,那么为保证它们连通,需要$k$条边。连边之后就变成了一个大的DAG,问题变为DAG中至少加多少条边强连通,那么这个模型是好做的。(子问题一)

至于怎么加边,则由于每个基图的连通块只有一条出边一条入边,就类似贪心地分别取出入度为零的点。(子问题二)

正确性可以由子问题一二的正确性保证。

ans':YA老爷发现这个模型好像是可以推广到DAG森林的。想了想确实有点道理。非形式化的证明:对于每一对出入度为零的点,因为最终所有点是强连通的,那么在它们之间连一条边会减少两个未确定的点。记出入度为零的点分别为$cnt_1,cnt_2$,因此答案是$max{cnt_1,cnt_2}$。

4.有$n$个点,每个点点权为$d_i in N^*$,边(u,v)权为$max{d_u,d_v}$,满足$sum d_i=s$。问这张图的完全图权值和最小是多少。

5.有$n$个点,每个点点权为$d_i in N^*$,边(u,v)权为$max{d_u,d_v}$,满足$sum d_i=s$。问在这张图选出m条边,权值和最小是多少。

树论

1.一颗$n$点有根树(或者无根树),给定$m$个叶子节点,要求设计一种方案将树染为黑白无三色,使得每个叶子节点到根的路径上恰好有$a_i$个白点,$b_i$个黑点。

ans:假设有解,那么根首先是可以确定下来的。那么依次顺推下去,将需求颜色相差1的连起来。如果没法连就意味着无解。时间复杂度$O(n^2)$

2.一颗$n$点有根树(或者无根树),给定$m$个叶子节点,要求设计一种方案将树染为黑白无三色,使得每个叶子节点到根的路径上至少有$a_i$个白点,$b_i$个黑点。

ans:好像连成一条链就行了吧?……若有无法连续的也意味着没有中间过渡的节点,即无解。

动态规划

1.有$n$个有权值的物品,$q$次询问删去一个物品$i$后在大小为$V$的背包中获得最大收益。删除操作独立。

2.有$n$个有权值的物品,$q$次询问删去一个物品$i$后在大小为$V$的背包中获得最大收益。删除操作不独立。

3.有$n$个有权值的物品,$q$次询问删去若干个物品后在大小为$V$的背包中获得最大收益。删除操作独立。

杂题

1.已知一个序列,任意交换至有序的次数是其逆序对个数。那么若有两个类型的序列混成一个序列(213213),其任意交换两数至有序(不一定要连续,如123123)的次数?

2.长度为$n$的序列,每个元素在$1...m$内均匀随机,求该序列gcd为d的概率。要求组合式子。

3.排序。首先位数大的数字一定大,对于位数相同的数字,就是一个字典序比较的过程。字典序比较可以参考trie的遍历。复杂度$O(nlog_rm)$.

4.一个串$S=antiquality$重复$k$次形成串$T$,问$S$在$T$中作为子序列出现次数。比如$T=antiqualityantiquality$。

  ans:记串长为$n$,因为串$T=SSSScdots$,那么首先会想到$k choose n$这个东西是表示每个字母在不同位置的方案数。

  那我们考虑加入$n-1$个虚拟点,第$i$个点表示$i,i+1$个字母在同一个$S$中。也即答案为$n-1+k choose n$.

5.给定一个序列,求这个序列本质不同子序列出现次数的平方/立方和。

  ans:也就是平方/立方和的一般处理方式,下面以平方和为例。考虑把序列复制一遍来处理,$f[i][j]$表示两个相同子序列(并不关心具体是什么)、一个以$i$结尾、一个以$j$结尾的方案数。那么所有的平方和贡献相当于将会在对应位置被统计。

原文地址:https://www.cnblogs.com/antiquality/p/9703635.html