CodeForces 10D(DP)
来源:互联网 发布:nginx 与 php fpm集成 编辑:程序博客网 时间:2024/06/10 10:48
题意:求最长公共上升子序列
思路:找了个模板..然后就....
#include<bits/stdc++.h>using namespace std;const int maxn = 505;int n1,n2;int ans,cnt;int a[maxn],b[maxn];int dp[maxn][maxn];int pre[maxn][maxn];int lcis[maxn];void getlcis(){memset(dp,0,sizeof(dp));memset(pre,0,sizeof(pre));for (int i = 1;i<=n1;i++){int k = 0;for (int j = 1;j<=n2;j++){if (a[i]!=b[j])dp[i][j]=dp[i-1][j];if (a[i]>b[j] && dp[i][j]>dp[i][k])k=j;if (a[i]==b[j]){dp[i][j]=dp[i][k]+1;pre[i][j]=k;}}} ans = -1;int x=n1,y=0;for (int i = 1;i<=n2;i++) if (dp[n1][i]>ans){ans = dp[n1][i];y=i;}cnt = 1;while (dp[x][y]){if (a[x]!=b[y])x--;else{lcis[ans-cnt]=b[y];cnt++;y = pre[x][y];}}}int main(){ scanf("%d",&n1);for (int i = 1;i<=n1;i++)scanf("%d",&a[i]);scanf("%d",&n2);for (int i = 1;i<=n2;i++)scanf("%d",&b[i]); getlcis(); printf("%d\n",ans);for (int i = 0;i<ans;i++)printf("%d ",lcis[i]);printf("\n");}
0 0
- CodeForces 10D(DP)
- codeforces 682D(DP)
- Codeforces-Goodbye2016-D(DP)
- Codeforces Beta Round #10 D. LCIS(DP&LCIS)
- Codeforces Beta Round #10 D. LCIS(DP)
- codeforces 580D(状态dp)
- CodeForces 383D Antimatter(DP)
- CodeForces 4D Mysterious Present(DP)
- Codeforces 474 D Flowers(DP)
- CodeForces 608D Zuma(DP)
- CodeForces 101D Castle(树形dp)
- CodeForces 484 D.Kindergarten(dp)
- Codeforces-837D Round Subset(dp)
- codeforces 183d(期望概率dp)
- Codeforces-837D:Round Subset(DP)
- 【DP】CodeForces 148D
- Codeforces 221D(dp)
- Codeforces 572D,DP
- golang注记
- android 重写GridView,让子View能够按指定的大小展示
- 北京林业大学“计蒜客”杯程序设计竞赛 网络赛 C-Candy【模拟】
- hdoj2010(java)水仙花数 格式格式!!!!!!!!!!!!!!
- Nginx 开启Gzip压缩的方法
- CodeForces 10D(DP)
- 浏览器设置编码方法
- URL、URLConnection 和HttpURLConnection
- python实现欧拉计划15题
- 解决Caused by: java.lang.NoClassDefFoundError: ServletConfig
- Win10+Ubuntu双系统安装教程
- BZOJ 3504: [Cqoi2014]危桥 最大流
- 项目通过myeclipse 布署到Tomcat 后无JSP等文件
- mysql的操作