随笔分类 -  动态规划

摘要:bzoj2287【POJ Challenge】消失之物 题意: 给出n,m,求用除了第i(1≤i≤n)个之外的物品填满容量为j(1≤j≤m)的背包的方法数。n,m≤2000。 题解: 令f[n][j]为所有物品可用填满j的方案数,F[i][j]为题目所求,则当j<a[i]时F[i][j]=f[n][ 阅读全文
posted @ 2016-09-11 14:44 YuanZiming 阅读(203) 评论(0) 推荐(0)
摘要:bzoj2017[Usaco2009 Nov]硬币游戏 题意: 初始时,一个有N枚硬币的堆栈放在地上,每枚硬币都有一个价值。开始玩游戏时,第一个玩家可以从堆顶拿走一枚或两枚硬币。之后每一轮中,当前的玩家至少拿走一枚硬币,至多拿走对手上一次所拿硬币数量的两倍。当没有硬币可拿时,游戏结束。 两个玩家都希 阅读全文
posted @ 2016-09-03 22:00 YuanZiming 阅读(294) 评论(0) 推荐(0)
摘要:bzoj1625[Usaco2007 Dec]宝石手镯 题意: n个宝石,每个有重量和价值,要挂一些在手镯上,求满足总质量不超过m的最大总价值。n≤3402,m≤12880 题解: 01背包。 代码: 1 #include <cstdio> 2 #include <cstring> 3 #inclu 阅读全文
posted @ 2016-08-25 21:49 YuanZiming 阅读(172) 评论(0) 推荐(0)
摘要:bzoj2427[HAOI2010]软件安装 题意: 有n个软件,每个大小为wi,价值为vi,同时每个软件依赖0个或一个其他软件,要求在大小不超过的m的前提下得到最大价值。n≤100,m≤500。 题解: 缩点然后做“树上背包dp”,具体看代码,注意里面用到了滚动数组。 代码: 1 #include 阅读全文
posted @ 2016-08-17 14:20 YuanZiming 阅读(181) 评论(0) 推荐(0)
摘要:bzoj1010[HNOI2008]玩具装箱toy 题意: n个东西,每个有一个长度Ci。要将这些东西分成几段,每段中东西编号连续。东西编号从i到j的段长度为x=i-j+sigma(k,i,j)Ck,费用为(x-L)^2(L为常量),求最小费用。n≤50000 题解: 裸斜率优化dp:f[i]=f[ 阅读全文
posted @ 2016-08-17 14:13 YuanZiming 阅读(177) 评论(0) 推荐(0)
摘要:bzoj4318OSU! 题意: 一个长度为n的序列,每个元素有一定概率是1,不是1就是0。连续x个1可以贡献x^3的分数,问期望分数。 题解: 期望dp。f1[i]表示连续到i的期望长度,f2[i]表示期望的f1[i]^2,f3[i]表示期望的f1[i]^3。 f1[i]=(f1[i-1]+1)* 阅读全文
posted @ 2016-08-16 15:15 YuanZiming 阅读(137) 评论(0) 推荐(0)
摘要:bzoj1688[Usaco2005 Open]Disease Manangement 疾病管理 题意: n头牛,d种疾病,每头牛都患一些疾病,现在要求选出最多的牛,使这些牛患病的种类数不超过k。n≤1000,d≤15 题解: 状压dp。f[i][S]表示当前考虑i头牛,患病集合为S, 则f[i][ 阅读全文
posted @ 2016-08-16 14:29 YuanZiming 阅读(221) 评论(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 阅读(475) 评论(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 阅读(414) 评论(0) 推荐(0)
摘要:bzoj3437小P的牧场 题意: n个牧场,在每个牧场见控制站的花费为ai,在该处建控制站能控制从此处到左边第一个控制站(或边界)之间的牧场。一个牧场被控制的花费等于它到控制它的控制站之间的牧场数目(不包括自身,但包括控制站所在牧场)乘上该牧场的放养量。求最小费用。 题解: 推公式: f[i]=f 阅读全文
posted @ 2016-08-15 07:57 YuanZiming 阅读(223) 评论(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 阅读(246) 评论(0) 推荐(0)
摘要:bzoj1669[Usaco2006 Oct]Hungry Cows饥饿的奶牛 题意: 求最长单调递增子序列,序列大小≤5000 题解: 蒟蒻弱写了一个O(n^2)的。 代码: 1 #include <cstdio> 2 #include <cstring> 3 #include <algorith 阅读全文
posted @ 2016-08-13 10:12 YuanZiming 阅读(230) 评论(0) 推荐(0)
摘要:bzoj1617[Usaco2008 Mar]River Crossing渡河问题 题意: 一个人和n牛渡河,人载i头牛渡河所需时间为m+sigma(j,1,i)a[j],人不载牛所需时间为m,到了对岸如果还要载牛必须花时间m把船开回来。问最短时间。n≤2500 题解: dp。f[i][j]=min 阅读全文
posted @ 2016-08-06 14:18 YuanZiming 阅读(152) 评论(0) 推荐(0)
摘要:bzoj1096[ZJOI2007]仓库建设 题意: N个工厂,第i个工厂目前已有成品Pi件,在第i个工厂位置建立仓库的费用是Ci。对于没有建立仓库的工厂,其产品应被运往其他的仓库进行储藏,产品都只能运往编号更大的工厂的仓库,一件产品运送1个单位距离的费用是1。求最小总费用(建造费用+运输费用)。N 阅读全文
posted @ 2016-08-03 14:06 YuanZiming 阅读(141) 评论(0) 推荐(0)
摘要:bzoj1040[ZJOI2008]骑士 题意: n个骑士,每个骑士都有且仅有一个自己最厌恶的骑士(当然不是他自己),且有一个战斗力。求从所有的骑士中选出一个骑士之间没有矛盾的骑士军团最大战斗力之和。n最大10e6 题解: 厌恶关系实际上是无向的。从每个骑士出发,沿着关系走可以得一个基环树(就是只有 阅读全文
posted @ 2016-08-03 14:00 YuanZiming 阅读(258) 评论(0) 推荐(0)
摘要:bzoj1079[SCOI2008]着色方案 题意: 有n个木块排成一行,有k种颜色的油漆,其中第i种颜色的油漆足够涂ci个木块,所有油漆刚好足够涂满所有木块。求任意两个相邻木块颜色不同的着色方案。k≤15,ci≤5 题解: 解决本题关键是ci≤5,所以以剩余可涂方块数为1,2,3,4,5及上次涂的 阅读全文
posted @ 2016-08-03 13:55 YuanZiming 阅读(199) 评论(0) 推荐(0)
摘要:bzoj1642[Usaco2007 Nov]Milking Time 挤奶时间 题意: m个挤奶时间段,每个时间段有一个产奶量,每次产完奶奶牛要休息r分钟,问最多产多少奶。m≤1000,时间≤1000000。 题解: 类似bzoj1664,方程改为f[i]=max(f[i+1],f[range[j 阅读全文
posted @ 2016-08-03 13:31 YuanZiming 阅读(214) 评论(0) 推荐(0)
摘要:bzoj1616[Usaco2008 Mar]Cow Travelling游荡的奶牛 题意: n行m列的草地上有一些位置有障碍物。第0时刻奶牛在(r1,c1),第t时刻奶牛在(r2,c2)(注意这里都是行在前,列在后),求奶牛走的方案数。n,m≤100,t≤15。 题解: dp。f[i][j][k] 阅读全文
posted @ 2016-08-03 13:24 YuanZiming 阅读(167) 评论(0) 推荐(0)
摘要:bzoj1664[Usaco2006 Open]County Fair Events 参加节日庆祝 题意: 有N个节日,每个节日有个开始时间,及持续时间。牛想尽可能多的参加节日,问最多可以参加多少。注意牛的转移速度是极快的,不花时间,且节日必须完整参加。N≤10000,开始时刻和持续时间≤10000 阅读全文
posted @ 2016-07-30 22:49 YuanZiming 阅读(316) 评论(0) 推荐(0)
摘要:bzoj1806[Ioi2007]Miners 矿工配餐 题意: 现有两个煤矿,有三种类型的食品车。每当一个新的食品车到达煤矿时,矿工们就会比较这种新的食品和前两次(或者少于两次,如果前面运送食品的次数不足两次)的食品。如果这几次食品车都是同一类型的食品,则矿工们产出一个单位的煤; 如果这几次食品车 阅读全文
posted @ 2016-07-30 13:41 YuanZiming 阅读(444) 评论(0) 推荐(0)