pku ppt some problem

The Triangle  http://poj.org/problem?id=1163

暴力dfs的话,每个节点有两条路可以走,那么n个节点复杂度就是2^n  n=100  超时   dp来做 就优化成 n^2

记忆化搜索,就能优化成n^2 因为一个点最多算一次,以后会直接返回dp i j 。 dp i j 表示这个位置能获得最大值。最后一行就是a i j  ,其他行都可以由下面两条路取最大值。

 1 #include<cstdio>
 2 #include<cstring>
 3 #include<algorithm>
 4 #define mt(a,b) memset(a,b,sizeof(a))
 5 using namespace std;
 6 const int M=128;
 7 int n,a[M][M],dp[M][M];
 8 int dfs(int i,int j){
 9     if(~dp[i][j]) return dp[i][j];
10     if(i==n) dp[i][j]=a[i][j];
11     else     dp[i][j]=max(dfs(i+1,j),dfs(i+1,j+1))+a[i][j];
12     return dp[i][j];
13 }
14 int main(){
15     while(~scanf("%d",&n)){
16         for(int i=1;i<=n;i++){
17             for(int j=1;j<=i;j++){
18                 scanf("%d",&a[i][j]);
19             }
20         }
21         mt(dp,-1);
22         printf("%d\n",dfs(1,1));
23     }
24     return 0;
25 }

自底向上的推法,那dp i j 就表示i j 这个位置能获得的最大值, 然后dp i j 可以推向两个状态,分别是 dp i-1 j 和 dp i-1 j-1.  这是用当前状态去推能到达的所有状态的写法。

 1 #include<cstdio>
 2 #include<cstring>
 3 #include<algorithm>
 4 #define mt(a,b) memset(a,b,sizeof(a))
 5 using namespace std;
 6 const int M=128;
 7 int a[M][M],dp[M][M];
 8 int main(){
 9     int n;
10     while(~scanf("%d",&n)){
11         for(int i=1;i<=n;i++){
12             for(int j=1;j<=i;j++){
13                 scanf("%d",&a[i][j]);
14             }
15         }
16         mt(dp,0);
17         for(int i=n+1;i>=1;i--){
18             for(int j=1;j<=n;j++){
19                 dp[i-1][j]=max(dp[i-1][j],dp[i][j]+a[i-1][j]);
20                 dp[i-1][j-1]=max(dp[i-1][j-1],dp[i][j]+a[i-1][j-1]);
21             }
22         }
23         printf("%d\n",dp[1][1]);
24     }
25     return 0;
26 }

这是用所有能到达的状态推当前状态的写法,并且空间优化了一下,省去了输入的数组。

 1 #include<cstdio>
 2 #include<algorithm>
 3 using namespace std;
 4 const int M=128;
 5 int dp[M][M];
 6 int main(){
 7     int n;
 8     while(~scanf("%d",&n)){
 9         for(int i=1;i<=n;i++){
10             for(int j=1;j<=i;j++){
11                 scanf("%d",&dp[i][j]);
12             }
13         }
14         for(int i=n-1;i>=1;i--){
15             for(int j=1;j<=i;j++){
16                 dp[i][j]=max(dp[i+1][j],dp[i+1][j+1])+dp[i][j];
17             }
18         }
19         printf("%d\n",dp[1][1]);
20     }
21     return 0;
22 }

最长上升子序列  http://bailian.openjudge.cn/practice/2757/

end

时间: 2024-11-05 19:16:52

pku ppt some problem的相关文章

PKU A Simple Problem with Integers (线段树区间更新求和)

题意:典型的线段树C,Q问题,有n个数a[i] (1~n),C, a, b,c在[a,b]区间增加c Q a b 求[a,b]的和. #include<cstdio> #include<stdlib.h> #include<string.h> #include<string> #include<map> #include<cmath> #include<iostream> #include <queue> #i

PKU A Simple Problem with Integers (段树更新间隔总和)

意甲冠军:一个典型的段树C,Q问题,有n的数量a[i] (1~n),C, a, b,c在[a,b]加c Q a b 求[a,b]的和. #include<cstdio> #include<stdlib.h> #include<string.h> #include<string> #include<map> #include<cmath> #include<iostream> #include <queue> #

巧抛纤誊怕t6ecba5k43

在不久前落幕的2016年全国两会上,国务院国有企业改革领导小组组长马凯对外界表示:"去年是国企改革方案制定的一年,今年是扎扎实实的落实年." 该人士表示,整体思路"就是一个放开一个监管,围绕市场化进行改革,同时防止国有资产流失". 两年前,财政部为"什么人能够持股"一事,进行了多次讨论.财政部相关政策制定部门人士认为,目前最纠结的问题是:"哪些人可以持股?管理层.技术骨干还是全员持股?这个问题正在讨论中." <国有科技型

谒昧谀折晾aw2hr6m6

2015年 9月13日,国务院印发<关于深化国有企业改革的指导意见>,这也是被认为是国企改革顶层设计方案正式出台. 另一位国资委人士向记者证实:将会有包括员工持股在内的措失出台. <中国经营报>记者获悉,在2015年19项国企改革相关政策推出后,2016年将有21项左右的国企改革政策出台,包括国企重组.员工持股.薪酬改革等内容. 在不久前落幕的2016年全国两会上,国务院国有企业改革领导小组组长马凯对外界表示:"去年是国企改革方案制定的一年,今年是扎扎实实的落实年.&qu

仕性欺掌米r460y7n9a5

<国有科技型企业股权和分红激励暂行办法>出台后"在企业和员工两个层面上对国企股权和分红激励划定了明确的标准和上限.一方面属于防止国有资产流失的正常举措,另一方面对国企科技人才获得分红和股权激励来说,也是一颗'定心丸'". "投行们最反对员工持股这一行为,而很多央企都有上市规划."该人士表示. 马凯强调,以提高国有资本效益,增强国有企业活力为核心,各个制度各个方面都要进行改革,一切不利于调动企业积极性.不利于调动和发挥企业家创造性的制度都应改革. 2016

酝宋林弦巯xc0gsh24y5zdwyu

为了防止国有资产流失,该文件同时指明,大型企业的股权激励总额不超过企业总股本的5%:中型企业的股权激励总额不超过企业总股本的10%:小.微型企业的股权激励总额不超过企业总股本的30%,且单个激励对象获得的激励股权不得超过企业总股本的3%. 此外,企业不能因实施股权激励而改变国有控股地位. 该人士表示,整体思路"就是一个放开一个监管,围绕市场化进行改革,同时防止国有资产流失". "十八届三中全会提出,在混合所有制企业可以搞员工持股,但这些事情比较谨慎,既有经验又有教训.&quo

靡掀诬雄闻i27i086n

"国有资产流失是一顶非常可怕的帽子,很多人怕犯错误,不敢推进员工激励.混合所有制等改革." 员工持股启动 2016年2月,国资委公布了<国有科技型企业股权和分红激励暂行办法>.国资委指出,为进一步激发广大技术和管理人员的积极性和创造性,促进国有科技型企业健康可持续发展,经国务院同意,在中关村(8.90, -0.14, -1.55%)国家自主创新示范区股权和分红激励试点办法的基础上,制定了<国有科技型企业股权和分红激励暂行办法>. <中国经营报>记者获

颂瓶团蕴谂sc098c29411ar9

随着国企改革的深入,2016年将有更多的国企改革亮点值得期待. 李锦同时指出:"改革在执行时又要强调'红线'意识,加强监管以防止国有资产的流失." 两年前,财政部为"什么人能够持股"一事,进行了多次讨论.财政部相关政策制定部门人士认为,目前最纠结的问题是:"哪些人可以持股?管理层.技术骨干还是全员持股?这个问题正在讨论中." "十八届三中全会提出,在混合所有制企业可以搞员工持股,但这些事情比较谨慎,既有经验又有教训."该人士表

淋伦彰酥桃em56pp30sp8x49kmwws

而针对这一问题,国资委内部人士也向记者表示:"员工持股的政策制定非常困难." 为了防止国有资产流失,该文件同时指明,大型企业的股权激励总额不超过企业总股本的5%:中型企业的股权激励总额不超过企业总股本的10%:小.微型企业的股权激励总额不超过企业总股本的30%,且单个激励对象获得的激励股权不得超过企业总股本的3%. 此外,企业不能因实施股权激励而改变国有控股地位. 2015年 9月13日,国务院印发<关于深化国有企业改革的指导意见>,这也是被认为是国企改革顶层设计方案正式出