博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
动态规划合集(二)
阅读量:5264 次
发布时间:2019-06-14

本文共 3072 字,大约阅读时间需要 10 分钟。

防卫导弹

//程序名:新的C++程序//作者: #include
#include
#include
using namespace std;int a[4005],p,dp[4005],ans;int main(){ while(cin>>a[++p]); p--; for(int i=p;i>=1;i--) { for(int j=i+1;j<=p;j++)if(a[j]<=a[i])dp[i]=max(dp[i],dp[j]); dp[i]++; } for(int i=1;i<=p;i++)ans=max(ans,dp[i]); cout<
View Code

会议厅

#include
#include
using namespace std;int n,ans;int dp[10005];struct talk{ int start,end;}a[10005];bool cmp(talk x,talk y){ if(x.end==y.end)return x.start
>n; for(int i=1;i<=n;i++)cin>>a[i].start>>a[i].end; sort(a+1,a+1+n,cmp); for(int i=1;i<=n;i++) { int maxx=0; for(int j=1;j<=i;j++)if(dp[j]>maxx&&a[i].start>=a[j].end)maxx = dp[j]; dp[i]=maxx+a[i].end-a[i].start; ans=max(ans,dp[i]); } cout<
View Code

合唱队形

//程序名:新的C++程序//作者: #include
#include
#include
using namespace std;int n,a[105],dpl[105],dpr[105],ans;int main(){ cin>>n; for(int i=1;i<=n;i++)cin>>a[i]; for(int i=1;i<=n;i++) { for(int j=i-1;j>=1;j--)if(a[j]
=1;i--) { for(int j=i+1;j<=n;j++)if(a[j]
View Code

石子归并

//程序名:新的C++程序//作者: #include
#include
#include
using namespace std;int p,a[105],n,s[105][105];int main(){ cin>>n; for(int i=1;i<=n;i++)cin>>p,a[i]=a[i-1]+p; for(int l=2;l<=n;l++) { for(int i=0;i<=n-l+1;i++) { int x=l+i-1; s[i][x]=1<<31-1; for(int k=i;k
View Code

能量项链

//程序名:新的C++程序//作者: #include
#include
#include
using namespace std;int n,a[505],ans,dp[505][505];int main() { cin>>n; for(int i=1;i<=n;i++) cin>>a[i],a[i+n]=a[i]; for(int j=2;j<=n*2;j++) for(int i=j-1;i>0&&j-i
View Code

又上锁妖塔

//程序名:新的C++程序//作者: #include
#include
#include
using namespace std;int n,a[10005],dp[10005][2];int main(){ cin>>n; for(int i=1;i<=n;i++)cin>>a[i]; dp[1][1]=a[1]; for(int i=2;i<=n;i++) { dp[i][0]=min(dp[i-1][1],dp[i-2][1]); dp[i][1]=min(dp[i-1][0],dp[i-1][1])+a[i]; } cout<
<
View Code

变音量

//程序名:新的C++程序//作者: #include
#include
#include
using namespace std;int n,b[10005],st,maxn,dp[65][1005];int main(){ cin>>n>>st>>maxn; dp[0][st]=1; for(int i=1;i
>b[i]; for(int i=0;i<=n-1;i++) { bool f=0; for(int j=0;j<=maxn;j++) if(dp[i][j]) { f=1; if(j-b[i]>=0)dp[i+1][j-b[i]]=1; if(j+b[i]<=maxn)dp[i+1][j+b[i]]=1; } if(!f){cout<<-1;exit(0);} } for(int i=maxn;i>=0;i--)if(dp[n][i]){cout<
View Code

 

转载于:https://www.cnblogs.com/2006hanziwei/p/11179908.html

你可能感兴趣的文章
instanceof
查看>>
《深入分析Java Web技术内幕》读书笔记之JVM内存管理
查看>>
python之GIL release (I/O open(file) socket time.sleep)
查看>>
2015/8/4 告别飞思卡尔,抛下包袱上路
查看>>
软件开发与模型
查看>>
161017、SQL必备知识点
查看>>
kill新号专题
查看>>
MVC学习系列——Model验证扩展
查看>>
C# GC 垃圾回收机制
查看>>
mysqladmin 修改和 初始化密码
查看>>
字符串
查看>>
vue2.x directive - 限制input只能输入正整数
查看>>
实现MyLinkedList类深入理解LinkedList
查看>>
自定义返回模型
查看>>
C#.NET 大型通用信息化系统集成快速开发平台 4.1 版本 - 客户端多网络支持
查看>>
HDU 4122
查看>>
Suite3.4.7和Keil u3自带fx2.h、fx2regs.h文件的异同
查看>>
打飞机游戏【来源于Crossin的编程教室 http://chuansong.me/account/crossincode 】
查看>>
[LeetCode] Merge Intervals
查看>>
【翻译自mos文章】当点击完 finishbutton后,dbca 或者dbua hang住
查看>>