Canada Tour
题目翻译:http://www.nocow.cn/index.php/Translate:USACO/tour
可以视为两个人同时从起点出发,中间不相交,最终到终点时两人走过的城市数量的和的最大值。f[i][j]表示甲到达i城市,乙到达j城市时的城市数量和,则:
f[i][j]=f[j][i]=max{f[i][k]}+1(k,j之间相连)
ans=max{f[i][n]}(i,n之间相连)
Telecowmunication
题目翻译:http://www.nocow.cn/index.php/Translate:USACO/telecow
类似于Pollutant Control的最小割问题,将每个点拆成两个点i1,i2,这两点之间连边,为了使边数最少且字典序最小,使每条边的容量=(101+1)*5000+i。然后使c1到所有与它相连的点的边的容量为inf,使所有与c2相连的点到c2的边的容量为inf。用Dinic求解即可。
Picture
题目翻译:http://www.nocow.cn/index.php/Translate:USACO/picture
线段树+扫描线,每次+1前将为0的端点的边长加入ans,每次-1后将为0的端点的边长加入ans。
Hidden Password
题目翻译:http://www.nocow.cn/index.php/Translate:USACO/hidden
将字符串复制为原来的2倍。采用比较法,设i,j分别为两个待比较字符串的起点位置,k表示以s[i]和s[j]为起点的串的公共前缀,一直对比字符串中s[i+k]与s[j+k]的大小,若s[i+k]>s[j+k],则i移到j的位置,j的位置+1;若s[i+k]
Two Five
题目翻译:http://www.nocow.cn/index.php/Translate:USACO/twofive
记忆化搜索。
对于编码转单词,要从小向大枚举最开始的几个字母,若这种情况下的数量>=编码,则枚举下一位;否则枚举下一个字母;
对于单词转编码,对每一位枚举所有字典序小于当前码的字母,计算剩余字母的方案数,加进ans,直到枚举完最后一位输出ans。
记忆化搜索求的就是在已固定一部分字母的情况下的方案数。