随笔分类 - 动态规划
摘要:bzoj3367[Usaco2004 Feb]The Big Game 球赛 题意: n只奶牛,每只支持两个球队中的一个,它们依次上车,上到一定程度可以开走这辆车并换下一辆继续上。要求一辆车上支持不同球队的奶牛数的差≤I,或者这辆车上只有支持同一球队的牛。问通过安排换车时机所能得到的车数的最小值。n
阅读全文
摘要:bzoj3446[Usaco2014 Feb]Cow Decathlon 题意: FJ有n头奶牛。FJ提供n种不同的技能供奶牛们学习,每头奶牛只能学习一门技能,每门技能都要有奶牛学习。 第i头奶牛学习第j门技能,FJ得到的分数S[i][j]。此外还有b个奖励,第i个奖励的格式是: Pi 、Ki 、A
阅读全文
摘要:bzoj3732Network 题意: 给一个无向图,k个询问求节点a到节点b最长边的最小值。n,k≤15000。 题解: ”最长边的最小值“经常可以用最小生成树解决,因为生成树里的每一条边都是可取的最小边,求完生成树之后就是经典的倍增应用:求lca的时候顺便维护一下边权最大值即可。 代码: 1 #
阅读全文
摘要:bzoj1742[Usaco2005 nov]Grazing on the Run 边跑边吃草 bzoj3074[Usaco2013 Mar]The Cow Run 题意: 数轴上有n棵草,牛初始在L位置(bzoj3074的牛初始在1位置),每移动一个单位需要+1s。而每过1s没吃的草腐败度会+1,
阅读全文
摘要:bzoj3384[Usaco2004 Nov]Apple Catching 接苹果 bzoj1750[Usaco2005 qua]Apple Catching 题意: 两棵树,每分钟会从其中一棵树上掉一个苹果下来,捡苹果的人只愿意W次,问初始在树1处最多能捡多少苹果。分钟数≤1000,W≤30。 题
阅读全文
摘要:bzoj1578[Usaco2009 Feb]Stock Market 股票市场 题意: 知道S只股票D天的价格。初始时有M元,问最后最多多少钱。S≤50,D≤10,M≤200000。 题解: 首先可以得出头日买了股票第二天立刻卖掉等价与拖几天再卖(因为可以卖掉后立刻买相同的数量)。故对每一天单独做
阅读全文
摘要:bzoj2020[Usaco2010 Jan]Buying Feed, II 题意: FJ开车去买食物,如果他的车上有X份食物。每走一里就花费X元。 城市总共E里路,FJ从0开始走,到E结束(不能往回走),要买K份食物。 城里有N个商店,每个商店的位置是Xi,有Fi份食物,每份Ci元。 问到达E并买
阅读全文
摘要:bzoj1652[Usaco2006 Feb]Treats for the Cows 题意: 管子里n个巧克力,第i个价值为ai。每天从左端点或右端点拿一个出来卖,收入为这个巧克力的价值*它是第几天卖出的。问最大价值。n≤2000 题解: dp:f[l][r]=max(f[l+1][r]+a[l]*
阅读全文
摘要:bzoj1655[Usaco2006 Jan] Dollar Dayz 奶牛商店 题意: 商场里有K种工具,价格分别为1,2,…,K美元。约翰手里有N美元,必须花完。求购买组合方案。n≤1000,k≤100。 题解: 完全背包,不过要高精度。 代码: 1 #include <cstdio> 2 #i
阅读全文
摘要:bzoj1649[Usaco2006 Dec]Cow Roller Coaster 题意: n条钢轨,第i条起点pi,长度为wi,价钱ci,有趣度fi,要求从0修到l使得总价钱不超过b的前提下有趣度和最大。n≤10000,l≤1000,b≤1000。 题解: 首先把钢轨组织成链表。接着dp:f[i]
阅读全文
摘要:bzoj1708[Usaco2007 Oct]Money奶牛的硬币 题意: n种硬币面值,求凑m元多少种方案。n≤25,m≤10000。 题解: 完全背包。f[0][0]=1,f[i][j]=sum(f[i-1][j],f[i][j-a[k]])。 代码: 1 #include <cstdio> 2
阅读全文
摘要:bzoj2023[Usaco2005 Nov]Ant Counting 数蚂蚁&&bzoj1630[Usaco2007 Demo]Ant Counting 题意: t个族群,每个族群有ni只蚂蚁,同族群蚂蚁没有区别。问从所有蚂蚁中选出s到b只蚂蚁有多少方案。t≤1000,ni≤100。 题解: dp
阅读全文
摘要:bzoj1618[Usaco2008 Nov]Buying Hay 购买干草 题意: n种物品,每种无限个,重量为pi,费用为ci,要求总重量超过h的前提费用最小。求最小费用。n≤100,m≤50000。 题解: dp。f[i][j]=min(f[i-1][j],f[i][j-p[i]]+c[i])
阅读全文
摘要:bzoj1613[Usaco2007 Jan]Running贝茜的晨练计划 题意: 贝茜进行N分钟的晨跑。在每分钟的开始,贝茜会选择下一分钟是用来跑步还是休息,如果贝茜选择在第i分钟内跑步,她可以在这一分钟内跑Di米,并且她的疲劳度会增加 1。贝茜的疲劳度上限为M。如果贝茜选择休息,那么她的疲劳度就
阅读全文
摘要:bzoj3380[Usaco2004 Open]Cave Cows 1 洞穴里的牛之一 题意: 给一个无向图,每一条边都有一个阈值,有一些点有草。牛从点1出发,每当它到达有草的点可以选择吃或不吃,如果吃的话体重加1。对于边如果它的阈值小于牛的体重,则此边不可通过。求牛走一圈回到点1的最大体重。有草节
阅读全文
摘要:bzoj3892[Usaco2014 Dec]Marathon 题意: 在二维平面上有N个点,从(x1,y1)到(x2,y2)的代价为|x1-x2|+|y1-y2|。求从1号点出发,按从1到N的顺序依次到达每个点的最小总代价。你有K次机会可以跳过某个点,不允许跳过1号点或N号点。n≤500。 题解:
阅读全文
摘要:bzoj4393[Usaco2015 Dec]Fruit Feast 题意: 奶牛一开始饱胀值为0,上限为T。每个柠檬派提供a点饱胀值,每个橘子派提供b点饱胀值,有一次机会喝水,使得饱胀值div2。柠檬派和橘子派有无限个,求最大饱胀值。T≤5000000。 题解: dfs。f[i][1/0]表示当前
阅读全文
摘要:bzoj1725[Usaco2006 Nov]Corn Fields牧场的安排 题意: n*m的土地,有的土地不能种草。求有多少种种草方案使得没有两块草地相邻。n,m≤12。 题解: 先预处理出存在草地左右相邻的不合法状态,然后状压dp。f[i][S]表示当前处理第i行上一行状态为S,则f[i][S
阅读全文
摘要:bzoj1231[Usaco2008 Nov]mixup2 混乱的奶牛 题意: n头奶牛,每头有一个编号,求有多少种排列顺序使得相邻两头奶牛的编号差不超过k。n≤16。 题解: 状压dp。f[i][S]表示已选状态为S,上一个选的是i,满足要求的方案数,则f[i][S]=sum(f[j][S|j])
阅读全文
摘要:bzoj2060[Usaco2010 Nov]Visiting Cows 拜访奶牛 题意: 给棵树,要求如果取了某个节点就不能取与它相邻的节点,问最多可取几个节点。树的大小≤50000。 题解: 树形dp。令f[i][0]不取i节点,f[i][1]为取i节点,则方程为f[i][0]=sum(max(
阅读全文