摘要: 求dp比较水。。但是打印路径很蛋疼。。搞了好久还学习了别人的递归写法题目:背景给定一个正整数序列a(1),a(2),...,a(n),(1 2 using namespace std; 3 #define INF 999999 4 int n; 5 int num[30]; 6 int sum[30]; 7 int dp[30][30]; 8 int G[30][30]; 9 10 int dfs( int L ,int R)11 {12 int &d = dp[L][R];13 if( d !=INF) return d;14 15 if(L == R) return... 阅读全文
posted @ 2014-02-01 23:30 doubleshik 阅读(270) 评论(0) 推荐(0) 编辑
摘要: 一道不知道是不是树形dp的水题。。就是选了一个点不能选他的父亲和儿子。 求一个最大值见代码描述Arthur公司是一个等级森严的公司,它们有着严格的上司与下属的关系,公司以总 裁为最高职位,他有若干个下属,他的下属又有若干个下属,他的下属的下属又有若干个下属……现接近年尾,公司组织团拜活动,活动中有一部分是自由舞会,公 司的每个职员都有一个搞笑值,现要你制定一套哪些人上台的方案,使得台上所有演员的搞笑值最大。当然,职员们是不会和他们的顶头上司一起上台的。格式输入格式第一行一个整数N,表示这个公司总共的职员个数。接下来一行有N个整数,由空格隔开,第i个整数表示职员i的搞笑值Ai(-1327670≤ 阅读全文
posted @ 2014-02-01 22:22 doubleshik 阅读(224) 评论(0) 推荐(0) 编辑
摘要: dp[l,r] =max(dp[l,k]*dp[k+1,r] + G[k] ) l 2 using namespace std; 3 #define LL long long 4 int n; 5 int mid[50]; 6 int first[50][50]; 7 int dp[50][50]; 8 int dfs(int L,int R) 9 {10 int &d = dp[L][R];11 if(d)return d;12 if( R-L ==1)13 {14 first[L][R] = L;15 ... 阅读全文
posted @ 2014-02-01 22:20 doubleshik 阅读(170) 评论(0) 推荐(0) 编辑