hdu 4604 2013多校
来源:互联网 发布:网络主播排行榜2017 编辑:程序博客网 时间:2024/06/13 01:50
网上很多AC代码都是错的 用这组数据可测
10
2 2 2 2 1 2 2 2 3 3
正确答案是 10
大部分都是没有把正确的相同的去掉
http://www.cnblogs.com/woaishizhan/archive/2013/07/23/3209328.html这个人的代码还是比脚靠谱的, 但是还是通不过着个数据,做了些小改动后,代码如下,思路同上BOLG
#include <cstdio>#include <cstring>#include <vector>#include <queue>#include <algorithm>#include <iostream>#define maxn 100010using namespace std;int val[maxn];int N;void DP(int num[],int dp[],int same[]){ int i,j; vector<int> v; for(i=0;i<N;i++) { int a,b; a=lower_bound(v.begin(),v.end(),num[i])-v.begin(); b=upper_bound(v.begin(),v.end(),num[i])-v.begin(); if(b==v.size()) { v.push_back(num[i]); dp[i]=v.size(); } else { v[b]=num[i]; dp[i]=b+1; } same[i]=min(same[i],b-a+1);//same[i] = b-a+1; }}int dp1[maxn],dp2[maxn];int same[maxn];int main(){ // freopen("input.txt","r",stdin); int i,j; int T; scanf("%d",&T); while(T--) {memset(same, 0x3f, sizeof(same)); scanf("%d",&N); for(i=0;i<N;i++) { scanf("%d",&val[i]); } reverse(val,val+N); DP(val,dp1,same); for(i=0;i<N;i++) { val[i]=-val[i]; } DP(val,dp2,same); int ans=0; for(i=0;i<N;i++) { ans=max(ans,dp1[i]+dp2[i]-same[i]); } printf("%d\n",ans); } return 0;}
- hdu 4604 2013多校
- hdu 2013多校2warmup2
- hdu 4604
- HDU 4604
- HDU 4604
- hdu 多校
- hdu 多校
- 多校 hdu
- 多校 hdu
- 多校 hdu
- HDU 多校
- hdu 2013
- hdu 2013
- hdu 2013
- HDU 2013
- HDU-2013
- hdu 2013
- HDU 2013
- “SCRIPT5007: 无法获取属性“nodeName”的值” 或 “TypeError: a is undefined”
- mysql集群之mysql-mmm在centos下的全程安装和配置(四)
- hive 配置参数说明
- 多线程全局对象析构导致线程运行出错
- linux中断嵌套以及中断丢失
- hdu 4604 2013多校
- 位运算与嵌入式编程之位制转换之一
- ::前面没有类名 代表了全局作用域
- Android的webview加载本地html、本apk内html和远程URL
- 东软---实习报告
- c# 调用 pdf2swf.exe
- jar(包)
- 动态规划 -- 最长公共子序列
- POJ1157 LITTLE SHOP OF FLOWERS