摘要: bzoj1709[Usaco2007 Oct]Super Paintball超级弹珠 题意: n*n的网格中有k头牛。在一个格子里发射子弹可以射中本格子,同行,同列,左斜线,右斜线(就是一个米字形)的牛,问能射中所有牛的格子有几个。n≤100。 题解: 枚举所有格子,从当前格子出发按题目里的方向走累 阅读全文
posted @ 2016-08-15 22:01 YuanZiming 阅读(291) 评论(0) 推荐(0) 编辑
摘要: bzoj3314[Usaco2013 Nov]Crowded Cows 题意: n头牛,如果某头牛左边距离D以内有高度至少是它的两倍的牛,右边也有,则此牛会感觉到不舒服。问多少牛会不舒服。n≤50000 题解: 用单调队列维护距离D以内的区间最大值,判断是否至少是当前牛的两倍,再倒回去做一遍即可。 阅读全文
posted @ 2016-08-15 21:55 YuanZiming 阅读(269) 评论(0) 推荐(0) 编辑
摘要: bzoj4300绝世好题 题意: 给定一个长度为n的数列ai,求ai的子序列bi的最长长度,满足bi&bi-1!=0。n≤100000,ai≤10^9。 题解: 用f[i]表示当前二进制i为1的最长子序列长度。每次求所有((1<<i)&bi)==1的f[i]最大值max,将所有((1<<i)&bi) 阅读全文
posted @ 2016-08-15 21:50 YuanZiming 阅读(466) 评论(0) 推荐(0) 编辑
摘要: bzoj2101[Usaco2010 Dec]Treasure Chest 藏宝箱 题意: 给个序列,A与B轮流取数,谁取的数总和大谁赢。每次只能取序列两端,问A能取的数总和最大是多少。假设两人都用最优策略。序列大小≤5000 题解: dp。f[i][j][0]=max(f[i+1][j][1]+a 阅读全文
posted @ 2016-08-15 21:41 YuanZiming 阅读(400) 评论(0) 推荐(0) 编辑
摘要: bzoj3437小P的牧场 题意: n个牧场,在每个牧场见控制站的花费为ai,在该处建控制站能控制从此处到左边第一个控制站(或边界)之间的牧场。一个牧场被控制的花费等于它到控制它的控制站之间的牧场数目(不包括自身,但包括控制站所在牧场)乘上该牧场的放养量。求最小费用。 题解: 推公式: f[i]=f 阅读全文
posted @ 2016-08-15 07:57 YuanZiming 阅读(213) 评论(0) 推荐(0) 编辑
摘要: bzoj2016[Usaco2010]Chocolate Eating 题意: n块巧克力,每次吃可以增加ai点快乐,每天早晨睡觉起来快乐值会减半,求如何使d天睡觉前的最小快乐值最大。n,d≤50000 题解: 二分快乐值,每天不够就吃。注意如果最后一天有剩余巧克力,必须将其全部吃完。 代码: 20 阅读全文
posted @ 2016-08-15 07:42 YuanZiming 阅读(176) 评论(0) 推荐(0) 编辑
摘要: bzoj2015[Usaco2010 Feb]Chocolate Giving 题意: n点m边无向图,有k头奶牛要送礼,它必须去农场(1号节点)拿礼物然后到目的地送。问每只奶牛的最短距离。n≤50000 题解: 以1号节点为源点spfa求一次最短路即可(反正是无向边)。 代码: 20160811 阅读全文
posted @ 2016-08-15 07:37 YuanZiming 阅读(212) 评论(0) 推荐(0) 编辑
摘要: bzoj2014[Usaco2010 Feb]Chocolate Buying 题意: n种巧克力,每种有个单价和最多能买几块,问有B块钱一共最多能买几块。n≤100000 题解: 贪心,按单价排序。 代码: 20160811 阅读全文
posted @ 2016-08-15 07:30 YuanZiming 阅读(198) 评论(0) 推荐(0) 编辑
摘要: bzoj3398[Usaco2009 Feb]Bullcow 牡牛和牝牛 题意: n头牛,其中有牡牛和牝牛两种,要求任意两只牡牛中要有k只牝牛,问几种方案。n≤100000 题解: dp。f[i]表示第i头牛为牡牛的方案数,f[i]=sigma(j,1,i-k-1)f[j],这个可以用前缀和维护,最 阅读全文
posted @ 2016-08-15 07:27 YuanZiming 阅读(235) 评论(0) 推荐(0) 编辑
摘要: bzoj1614[Usaco2007 Jan]Telephone Lines架设电话线 题意: n个节点,1号节点已经连入互联网,现在需要将整个图连入网络。有K条边可以免费连接,最后总费用为所有连边费用的最大值,求最小总费用。n≤10000 题解: 二分费用,将连边费用大于二分值的长度记为1,否则记 阅读全文
posted @ 2016-08-15 07:01 YuanZiming 阅读(397) 评论(0) 推荐(0) 编辑