HDU 4512
来源:互联网 发布:如何搭建云计算平台 编辑:程序博客网 时间:2024/05/22 14:59
HDU 4512
太弱了,LCIS都不会,赛后急急忙忙找出来学习学习,分成两种情况,长度为偶数的,把数列分成2段,后半段翻转,LCIS一次,长度为奇数的,枚举中点,分别将左右2边小于中点的数放入数组中,LCIS一次就行了。
#include<iostream>#include<cstdio>#include<vector>#include<map>#include<algorithm>#include<queue>#include<cstring>#include<cmath>using namespace std;#define LL long long#define N 205int dp[N];int a[N],b[N],s[N];int lcis(int la,int lb){ memset(dp,0,sizeof(dp)); int len = 0; for(int i = 1;i <= la;i++) { int maxx = 0; for(int j = 1;j <= lb;j++) { if(a[i] > b[j] && maxx < dp[j]) maxx = dp[j]; if(a[i] == b[j]) dp[j] = maxx + 1; } } for(int i = 1;i <= lb;i++) len = max(len , dp[i]*2); return len;}int main(){ int i,j,k,l; int t,n; cin>>t; while(t--) { cin>>n; for(i = 1;i <= n;i++) { cin>>s[i]; } int ans = 0; for(i = 1;i < n;i++) { for(j = 1;j <= i;j++) { a[j] = s[j]; } for(j = n,k = 1;j > i ;j--,k++) { b[k] = s[j]; } ans = max(ans,lcis(i,n - i)); } for(i = 1;i <= n;i++) { for(j = 1,k = 0;j < i;j++) { if(s[j] < s[i]) { k++; a[k] = s[j]; } } for(j = n,l = 0;j > i;j--) { if(s[j] < s[i]) { l++; b[l] = s[j]; } } if(k && l) { ans = max(ans,lcis(k ,l) + 1); } } cout<<ans<<endl; } return 0;}
- HDU 4512
- HDU 4512
- hdu 4512
- (4512)HDU
- HDU 4512
- HDU 4512 LCIS
- hdu 4512 (LCIS)
- hdu(4512)
- hdu 4512 DP
- hdu
- hdu
- HDU
- hdu ()
- hdu
- hdu
- HDU
- HDU
- hdu
- Java沙箱的实现
- tomcat 6无法安装的解决办法
- 计算1~n之和
- ios数据存储
- HUST JudgeOnline 开发日记 1
- HDU 4512
- 一个人的战斗
- uestc oj 1796 Flash Mob
- 六个可以让你变得更强大的残酷事实
- HUST JudgeOnline 开发日记 2
- HUST JudgeOnline 开发日记 3
- 如何设置Java桌面程序界面外观(How to Set the Look and Feel)
- C#中编制装逼小软件的一些技巧
- epoll与线程池异步处理的问题