hdu 5773
Posted 早知如此绊人心,何如当初莫相识。
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hdu 5773相关的知识,希望对你有一定的参考价值。
题意:给出一个数列,其中0可以替换为任意整数,问最长严格递增子序列多长。
思路:如果某个数前面有0,那么这个0替换成该数-1为最优,那么我们就可以把数字-前面0的个数,去掉0形成一个新的数列,结果就是该数列的最长递增子序列+0的个数
1 #include<bits/stdc++.h> 2 using namespace std; 3 const int N=1e5+10; 4 const int INF=1e9; 5 6 int a[N]; 7 int dp[N]; 8 9 int main(){ 10 int t; 11 int k=1; 12 scanf("%d",&t); 13 while(t--){ 14 int n; 15 scanf("%d",&n); 16 int l=0; 17 int Max=0; 18 int s=0; 19 int x; 20 for(int i=1;i<=n;i++) { 21 scanf("%d",&x); 22 if(x!=0) a[++l]=x-s; 23 else s++; 24 dp[i]=INF; 25 } 26 for(int i=1;i<=l;i++){ 27 int kk=lower_bound(dp+1,dp+1+l,a[i])-dp; 28 dp[kk]=a[i]; 29 Max=max(Max,kk); 30 } 31 printf("Case #%d: %d\n",k++,Max+s); 32 } 33 return 0; 34 } 35 /* 36 5 37 5 38 7 8 8 7 9 39 */
以上是关于hdu 5773的主要内容,如果未能解决你的问题,请参考以下文章
HDU 5773 The All-purpose Zero(O(nlgn)求LIS)
[HDOJ5773]The All-purpose Zero(贪心,DP)
PHP 'ext/zip/php_zip.c'释放后重利用远程代码执行漏洞(CVE-2016-5773)
HDU4057 Rescue the Rabbit(AC自动机+状压DP)