hdoj5773The All-purpose Zero【LIS】
来源:互联网 发布:关于加强网络信息安全 编辑:程序博客网 时间:2024/06/05 23:40
The All-purpose Zero
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 1440 Accepted Submission(s): 686
Problem Description
?? gets an sequence S with n intergers(0 < n <= 100000,0<= S[i] <= 1000000).?? has a magic so that he can change 0 to any interger(He does not need to change all 0 to the same interger).?? wants you to help him to find out the length of the longest increasing (strictly) subsequence he can get.
Input
The first line contains an interger T,denoting the number of the test cases.(T <= 10)
For each case,the first line contains an interger n,which is the length of the array s.
The next line contains n intergers separated by a single space, denote each number in S.
For each case,the first line contains an interger n,which is the length of the array s.
The next line contains n intergers separated by a single space, denote each number in S.
Output
For each test case, output one line containing “Case #x: y”(without quotes), where x is the test case number(starting from 1) and y is the length of the longest increasing subsequence he can get.
Sample Input
272 0 2 1 2 0 561 2 3 3 0 0
Sample Output
Case #1: 5Case #2: 5HintIn the first case,you can change the second 0 to 3.So the longest increasing subsequence is 0 1 2 3 5.
Author
FZU
Source
2016 Multi-University Training Contest 4
/* ***********************************************Author : rycCreated Time : 2016-08-03 WednesdayFile Name : E:\acmcode\hdoj\5773.cppLANGUAGE : c++Copyright 2016 ryc All Rights Reserved************************************************ */#include<iostream>#include<cstdio>#include<cstdlib>#include<cstring>#include<algorithm>#include<cmath>#include<queue>#include<stack>#include<vector>#include<list>#include<map>using namespace std;const int maxn=1000010;int num[maxn];int s[maxn];int LIS(int n){ if(n==0)return 0; num[1]=s[1];int len=1; for(int i=2;i<=n;++i){ if(s[i]>num[len]){ num[++len]=s[i]; continue; } int left=1,right=len; while(left<=right){ int mid=(left+right)>>1; if(s[i]>num[mid]){ left=mid+1; } else { right=mid-1; } } num[left]=s[i]; } return len;}int main(){ int t,T=1,n;cin>>t; while(t--){ scanf("%d",&n); int ans=0,cnt=0; for(int i=1;i<=n;++i){ scanf("%d",&num[i]); if(num[i]==0)ans++; else { s[++cnt]=num[i]-ans; } } ans+=LIS(cnt); printf("Case #%d: %d\n",T++,ans); } return 0;}
0 0
- hdoj5773The All-purpose Zero【LIS】
- hduThe All-purpose Zero+LIS
- HDU 5773 The All-purpose Zero lis
- HDOJ 5773 The All-purpose Zero(LIS)
- HDU-The All-purpose Zero(LIS)
- HDOJ-----5773The All-purpose Zero(LIS)
- hdu 5773 The All-purpose Zero (LIS)
- hdu5773-LIS&技巧-The All-purpose Zero
- hdu5773 The All-purpose Zero(LIS变形)
- HDU 5773 The All-purpose Zero(LIS特殊处理)
- Hdu-5773 The All-purpose Zero(LIS变形)
- HDU 5773 The All-purpose Zero (LIS)
- HDU 5773 The All-purpose Zero ( LIS 变形 )
- HDU 5773 The All-purpose Zero(贪心LIS)
- HDU5773(The All-purpose Zero LIS变形)
- hdu 5773 The All-purpose Zero 思维转化+nlogn LIS
- HDU 5773 The All-purpose Zero(LIS)
- HDU Problem 5773 The All-purpose Zero 【LIS】
- Android ContentProvider和Uri详解
- 每个程序员都应该收藏的算法复杂度速查表
- solr学习笔记-增加mmesg4J中文分词
- CC2640之可以被多个主机同时连接的从设备实例
- 算法背后真正需要培养什么?
- hdoj5773The All-purpose Zero【LIS】
- Spring AOP 使用注解的方式实现用户日志的两种方法
- 鬼吹灯
- JavaMail发送邮件
- REST设计规范
- vs2015使用小技巧-- 快捷键:导入命名空间
- 位运算
- Codeforces 633 F The Chocolate Spree(树形dp,两条不相交链节点权值和最大)
- 如何关闭linux防火墙