灵光一现的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(n\log_rm)$.
4.一个串$S=antiquality$重复$k$次形成串$T$,问$S$在$T$中作为子序列出现次数。比如$T=antiqualityantiquality$。
ans:记串长为$n$,因为串$T=SSSS\cdots$,那么首先会想到$k \choose n$这个东西是表示每个字母在不同位置的方案数。
那我们考虑加入$n-1$个虚拟点,第$i$个点表示$i,i+1$个字母在同一个$S$中。也即答案为$n-1+k \choose n$.
5.给定一个序列,求这个序列本质不同子序列出现次数的平方/立方和。
ans:也就是平方/立方和的一般处理方式,下面以平方和为例。考虑把序列复制一遍来处理,$f[i][j]$表示两个相同子序列(并不关心具体是什么)、一个以$i$结尾、一个以$j$结尾的方案数。那么所有的平方和贡献相当于将会在对应位置被统计。