—————动态规划—————
文章平均质量分 56
everlasting__
'-'
展开
-
bzoj 2060: [Usaco2010 Nov]Visiting Cows 拜访奶牛
→题目链接←就是最经典的树形dp参考 没有上司的舞会#include#include#include#include #define MAXN 50050 using namespace std; int n;int dp[MAXN][2];bool f[MAXN];vectorv[MAXN]; void dfs(int x){ dp[x][1]=1原创 2017-07-23 21:22:58 · 368 阅读 · 0 评论 -
bzoj 1270: [BeijingWc2008]雷涛的小猫 dp
→题目链接←一看到题就可以想到是动态规划首先不作任何优化的dp时间复杂度显然是n^3的dp[i][j]表示第i棵树,高度为j时最多可以吃到多少个柿子num[i][j]表示第i棵树,高度为j的位置上有几个柿子显然dp[i][j]=max(dp[i][j+1]+num[i][j] , dp[1~n][j+delta]+num[i][j])但是n^3是过不了的我们发现原创 2017-08-17 16:15:50 · 267 阅读 · 0 评论 -
bzoj 2748: [HAOI2012]音量调节 dp
→题目链接←很水的一道题如果第i首歌时音量为j是可行的,那么dp[i][j]=true最初dp[0][beginLevel]=true;之后每次暴力扫上一次的状态,转移就好代码:#include#include#include#include#include#include #define ll long long#define inf 10原创 2017-08-18 13:48:12 · 238 阅读 · 0 评论 -
bzoj 1649: [Usaco2006 Dec]Cow Roller Coaster 背包dp
→题目链接←dp[i][j]表示铁轨长度为i,花费为j时有趣指数最大值代码:#include#include#include#include#include#include#define inf 999999999#define ll long longusing namespace std;struct node{ int s,e,w,c;}a[1原创 2017-08-15 10:06:49 · 258 阅读 · 0 评论 -
bzoj 3366: [Usaco2004 Feb]Breeding 奶牛饲育
特别鸣谢+膜拜ljss→题目链接←题目大意就是有多少种不同的方案能乘出n把所有的约数都暴力地找出来,然后dp[i]表示n=a[i]时有多少种方法可以得到这个数显然的是如果a[i]%a[j]==0那么dp[i]+=dp[j]初始时dp[i]都为1最后那个dp就是答案代码:#include#include#includeusing nam原创 2017-08-24 11:04:21 · 470 阅读 · 0 评论 -
bzoj 3359: [Usaco2004 Jan]矩形
→题目链接←先令所有的矩形的x,y都是x再以x为第一关键字,y为第二关键字,从小到大排序然后就变成了找一个二维的最长上升子序列n*注意两个矩形全等不算包含代码:#include#include#include#include#includeusing namespace std;struct node{ int x,y; friend原创 2017-09-28 13:50:14 · 271 阅读 · 0 评论 -
bzoj 1827: [Usaco2010 Mar]gather 奶牛大集会
→题目链接←【想说的话】没有什么想说的=.=周末没什么事不刷题感觉不太好【题解】两遍dfs(树形dp)将点1当作根第一遍dfs计算出每个点子节点总数,还有将它作为集会地点时它的子树中的点满足条件需要的代价第二遍计算出答案,点1的答案就是dfs1时处理出的代价,剩下的点的答案就对于它与它父亲节点的那条边计算一下就好具体看代码吧【代码】原创 2017-10-29 22:18:00 · 248 阅读 · 0 评论 -
bzoj 1925: [Sdoi2010]地精部落
→题目链接←【题解】a[ 0 ][ 0 ]=1;a[ i ][ j ]=a[ i ][ j-1 ]+a[ i-1 ][ i-j ]; (i从1~n j从1~i)ans=a[ n ][ n ]*2;中间%一%就好【代码】#include#define ll long longusing namespace std;int n,mod;ll原创 2017-10-26 11:34:40 · 211 阅读 · 0 评论