Postal Vans
题目翻译:http://www.nocow.cn/index.php/Translate:USACO/vans
计算哈密顿回路。实际上有递推式(需要使用高精度),可以使用矩阵快速幂加速,但是不使用矩阵快速幂也可以通过本题。
f[1]=0,f[2]=2,f[3]=4,f[4]=12;
f[i]= 2*(f[i-1]+f[i-2]-f[i-3])+f[i-4];
A Rectangular Barn
题目翻译:http://www.nocow.cn/index.php/Translate:USACO/rectbarn
和求最大正方形面积有很大不同,不过DP依然可以解决。
h[i]表示第i列最大高度,若该点有障碍,则h[i]=0,否则h[i]+1;
l[i][j]表示第i行向左的最大宽度,若该点有障碍,则l[i][j]=0;否则,l[i][j]=min(l[i-1][j],l[i][j-1]);
r[i][j]同理,表示向右的最大宽度,循环方向相反。
面积=(l[i][j]+r[i][j]-1)*h[i],输出最大面积即可。
Cow XOR
题目翻译:http://www.nocow.cn/index.php/Translate:USACO/cowxor
因为xor两次等于不发生任何变化,所以可以预处理f[i]表示前i头奶牛的xor值,则区间i-j的奶牛的xor值为f[j]^f[i-1]。因此,对于每个f[i],应找出一个f[j]使f[j]与f[i]的二进制数尽可能取反,这样xor后的值最大。建立一颗由0和1构成的字典树,每次按尽可能取反的原则找出取反最多的元素的编号k,若f[i]^f[k]>ans,则更新ans及区间。查询完将f[i]插入字典树。