【HDU】-5748-Bellovin(LIS,变化)
来源:互联网 发布:人工智能电影观后感 编辑:程序博客网 时间:2024/05/18 01:29
Bellovin
Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)Total Submission(s): 996 Accepted Submission(s): 447
Problem Description
Peter has a sequence a1,a2,...,an and he define a function on the sequence -- F(a1,a2,...,an)=(f1,f2,...,fn) , where fi is the length of the longest increasing subsequence ending with ai .
Peter would like to find another sequenceb1,b2,...,bn in such a manner that F(a1,a2,...,an) equals to F(b1,b2,...,bn) . Among all the possible sequences consisting of only positive integers, Peter wants the lexicographically smallest one.
The sequencea1,a2,...,an is lexicographically smaller than sequence b1,b2,...,bn , if there is such number i from 1 to n , that ak=bk for 1≤k<i and ai<bi .
Peter would like to find another sequence
The sequence
Input
There are multiple test cases. The first line of input contains an integer T , indicating the number of test cases. For each test case:
The first contains an integern (1≤n≤100000) -- the length of the sequence. The second line contains n integers a1,a2,...,an (1≤ai≤109) .
The first contains an integer
Output
For each test case, output n integers b1,b2,...,bn (1≤bi≤109) denoting the lexicographically smallest sequence.
Sample Input
311055 4 3 2 131 3 5
Sample Output
11 1 1 1 11 2 3
#include<cstdio>#include<cstring>#include<algorithm>using namespace std;#define INF 0x3f3f3f3f#define CLR(a,b) memset(a,b,sizeof(a))int a[100010];int dp[100010];int g[100010];int main(){int u;scanf("%d",&u);while(u--){CLR(a,0);int n,i;scanf("%d",&n);for(i=1;i<=n;i++){scanf("%d",&a[i]);g[i]=INF;dp[i]=0;//初始化 dp[i]=0 }int ans=0;for(i=1;i<=n;i++){int k=lower_bound(g+1,g+1+n,a[i])-g;dp[i]=max(k,dp[i]);//变化主要在这,理解。 g[k]=min(g[k],a[i]);//g[k]第k位现在的值,要求一直可以小就小 }for(i=1;i<n;i++)printf("%d ",dp[i]);printf("%d\n",dp[n]);}return 0;}
0 0
- 【HDU】-5748-Bellovin(LIS,变化)
- hdu 5748 Bellovin(LIS)
- HDU 5748 (Bellovin LIS)
- HDU 5748 Bellovin(LIS)
- 【HDU】5748 - Bellovin(LIS)
- HDU 5748 Bellovin(LIS)
- HDU 5748 Bellovin (LIS)
- LIS hdu 5748 (Bellovin)
- HDU-5748-Bellovin【LIS】
- HDU-5748 Bellovin 【LIS(STL应用)】
- HDU:5748 Bellovin(LIS+打表)
- HDU 5748 Bellovin(LIS nlogn)
- HDU Problem 5748 Bellovin 【LIS】
- Bellovin【hdu 5748 dp lis】
- HDOJ 5748 Bellovin(LIS)
- HDOJ-----5748Bellovin(LIS)
- HDU 5748 BestCoder Round #84 Bellovin (LIS)(树状数组)
- hdu5748 Bellovin(LIS模板)
- OFBiz 的Party PartyGroup主要关系
- ionic开发中的一些小技巧
- Prism应用开发(七)——导航
- iOS vDSP中的单矢量生成
- SQLServer 安全加固:ICP备案需要禁用的扩展存储过程
- 【HDU】-5748-Bellovin(LIS,变化)
- Android产品研发系列
- OFBIZ各级菜单权限分配
- Oracle EBS fnd_request.submit_request 与 Fnd_concurrent.wait_for_ruqest
- Flexbox 布局 与 常见布局需求实现对比
- Linux休眠,挂起,待机,关机的区别及相关命令
- Prism应用开发(八)——松耦合组件之间通信
- OFBIZ 条件语句是怎样炼成的?
- 矩阵变换:沿任意方向缩放、镜像、正交投影及切变及其推导