DP入门
来源:互联网 发布:陈绮贞矿泉水洗澡 知乎 编辑:程序博客网 时间:2024/05/03 17:48
- ZigZag - 2003 TCCC Semifinals 3
题意:选出一个序列,满足,相邻两个只差,正负交错,求最长的。
class ZigZag{public : int longestZigZag(vector <int> sequence) { int dp[55][2]; cle(dp); int len=sequence.size(); if(len==1)return 1; dp[0][1]=1; dp[0][0]=1; int i,j,k; for(i=1;i<len;i++){ for(j=0;j<i;j++){ if(sequence[j]>sequence[i]) { dp[i][1]=max(dp[i][1],dp[j][0]+1); } else if(sequence[j]<sequence[i]){ dp[i][0]=max(dp[i][0],dp[j][1]+1); } } } int ans=0; rep(i,len){ ans=max(ans,dp[i][0]); ans=max(ans,dp[i][1]); } cout<<ans<<endl; return ans; }};
- BadNeighbors - 2004 TCCC Round 4
- 题意:围成一个环的一些数,选择一些数,满足不能同时选择相邻的,求最大的和。
class BadNeighbors{public: int maxDonations(vector <int> donations) { int dp[55][2]; int len=donations.size(); int i,j,k; cle(dp); rep(i,len){ dp[i][0]=donations[i]; } dp[0][0]=0; dp[0][1]=donations[0]; rep(i,len) { for(j=0;j<i-1;j++) { if((i+1)%len==j)continue; dp[i][0]=max(dp[i][0],dp[j][0]+donations[i]); dp[i][1]=max(dp[i][1],dp[j][1]+donations[i]); } } int ans=0; rep(i,len){ if(i==len-1) { ans=max(ans,dp[i][0]); break; } ans=max(ans,dp[i][1]); ans=max(ans,dp[i][0]); } return ans; }};
- FlowerGarden - 2004 TCCC Round 1
0 0
- DP入门
- DP入门
- DP入门
- dp入门
- DP入门
- DP入门
- DP入门
- dp入门
- DP入门
- DP入门
- DP入门篇
- 状态压缩DP 入门
- 树形DP 入门
- 树形DP入门
- 状态压缩DP入门
- 插头DP【入门】
- DP入门篇
- 概率DP【入门】
- Raspberry PI 系列 —— 裸机点亮LED灯
- 机房收费系统之结账
- 08、maven生命周期详解
- 如何烧制瘦肉不硬的红烧肉?
- Codeforces 460 D. Little Victor and Set
- DP入门
- java对象序列化
- Data 语意学---Data member的存取效率
- 黑马程序员—黑马历程--我的人生,我的路--黑九的我毕业了
- java 异常问题 No bean named 'sessionFactory' is defined 和 initialize a collection of role
- ASIHTTPRequest 对GET POST 请求简单封装
- Oracle Sequence中Cache与NoCache的区别
- 学生表sid,sname,成绩表cid,cname,学生成绩表sid,cid,cscore,要求输出特地考生最高成绩的课程名称
- nagios插件之监控f5主备状态(ssh实现)