USACO 6.1解题报告

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]插入字典树。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值