hdu 4212 吉哥系列故事——完美队形I
2015-11-09 22:08
239 查看
将数组反转,求最长上升公共子串
#include<iostream> #include<cstring> #define maxn 210 using namespace std; int a[maxn],b[maxn],n; void input() { cin>>n; for(int i=1,j=n;i<=n;i++,j--) { cin>>a[i]; b[j]=a[i]; } } int solve() { int dp[maxn]; memset(dp,0,sizeof(dp)); int re=0; for(int i=1;i<=n;i++) { int k=0,j=1; for(j=1;j<=n-i+1;j++) { if(a[i]==b[j]) { if(j!=n-i+1) dp[j]=max(dp[j],dp[k]+2); else dp[j]=max(dp[j],dp[k]+1); } else if(a[i]>b[j]&&dp[k]<dp[j]) k=j; } re=max(dp[j],re); } return re; } int main() { int t; cin>>t; while(t--) { input(); cout<<solve()<<endl; } return 0; }
相关文章推荐
- Apache ActiveMQ消息中间件的基本使用
- 软工文档总结
- Android Studio如何更改icon图标
- Opencv For Android: 如何显示摄像头预览
- [01]基本语法
- EMC题
- 面试
- NYOJ 1185 最大最小值 (线段树区间最值 水)
- JS初体验(一)
- 45.Oracle数据库SQL开发之 日期和时间的存储与处理——使用时间戳
- WEB服务器、应用程序服务器、HTTP服务器区别
- 模拟实现strstr函数
- 44.Oracle数据库SQL开发之 日期和时间的存储与处理——理解时区
- Lucene5.3高级应用
- HDU 2018 母牛的故事
- 反射+代理模式=动态代理
- IPC—信号量
- Android开发懒人库 -- ButterKnife
- 【JavaScript知识点八】javascript 正则表达式
- ASP.NET WebAPI 11 参数验证