拦截导弹;合唱队形;友好城市——基本的单调序列动态规划吧

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了拦截导弹;合唱队形;友好城市——基本的单调序列动态规划吧相关的知识,希望对你有一定的参考价值。

  合集,三个题目基本上都一样。耗时也不贴了。

  拦截导弹:

技术分享
 1 #include<iostream>
 2 #include<cstdio>
 3 using namespace std;
 4 const int N=128;
 5 int n=1,val[N];
 6 int up[N],dn[N],cnt1,cnt2;
 7 int main(){
 8     for(int i=0;i<N;i++)up[i]=dn[i]=1;
 9     while(cin>>val[n])n++;n--;
10     
11     for(int i=1;i<=n;i++)
12         for(int j=1;j<=i;j++){
13             if(val[i]>val[j])up[i]=max(up[i],up[j]+1);
14             if(val[i]<val[j])dn[i]=max(dn[i],dn[j]+1);
15             cnt1=max(dn[i],cnt1);
16             cnt2=max(up[i],cnt2);
17         }
18     
19     cout<<cnt1<<endl<<cnt2<<endl;
20     return 0;
21 }
Problem_01

  合唱队形:

技术分享
 1 #include<iostream>
 2 #include<cstdio>
 3 using namespace std;
 4 const int N=128;
 5 int n,val[N];
 6 int lf[N],rf[N],ans;
 7 int main(){
 8     for(int i=0;i<N;i++)lf[i]=rf[i]=1;
 9     cin>>n;
10     for(int i=1;i<=n;i++)cin>>val[i];
11     
12     for(int i=2;i<=n;i++)
13         for(int j=1;j<i;j++)
14             if(val[i]>val[j])
15                 lf[i]=max(lf[i],lf[j]+1);
16     for(int i=n-1;i>=1;i--)
17         for(int j=n;j>i;j--)
18             if(val[i]>val[j])
19                 rf[i]=max(rf[i],rf[j]+1);
20     
21     for(int i=0;i<=n+1;i++)ans=max(ans,lf[i]+rf[i]-1);
22     cout<<n-ans<<endl;
23     return 0;
24 }
Problem_02

  友好城市:

技术分享
 1 #include<algorithm>
 2 #include<iostream>
 3 #include<cstdio>
 4 using namespace std;
 5 const int N=10086;
 6 struct node{
 7     int x,y;
 8     bool operator < (const node oth) const {return x<oth.x;}
 9 }p[N];
10 int n,f[N],res;
11 int main(){
12     for(int i=0;i<N;i++)f[i]=1;
13     cin>>n;
14     for(int i=1;i<=n;i++)cin>>p[i].x>>p[i].y;
15     sort(p+1,p+1+n);
16     
17     for(int i=2;i<=n;i++)
18         for(int j=1;j<i;j++)
19             if(p[i].y>p[j].y)
20                 f[i]=max(f[i],f[j]+1);
21     
22     for(int i=1;i<=n;i++)res=max(res,f[i]);
23     cout<<res<<endl;
24     return 0;
25 }
Problem_03

以上是关于拦截导弹;合唱队形;友好城市——基本的单调序列动态规划吧的主要内容,如果未能解决你的问题,请参考以下文章

Luogu关卡2-16线性动态规划(2017年10月)

动态规划 目录

动态规划入门

动态规划合唱队形 luogu-

Luogu1091 合唱队形

NOIP200407合唱队形+最长上升子序列O(n^2)详解