第15届浙江省赛 E LIS
LIS
Time Limit: 1 Second Memory Limit: 65536 KB Special Judge
DreamGrid is learning the LIS (Longest Increasing Subsequence) problem and he needs to find the longest increasing subsequence of a given sequence of length .
Recall that
A subsequence of length is a sequence satisfying and .
An increasing subsequence is a subsequence satisfying .
DreamGrid defines the helper sequence where indicates the maximum length of the increasing subsequence which ends with . In case you don't know how to derive the helper sequence, he provides you with the following pseudo-code which calculates the helper sequence.
procedure lis_helper(: original sequence)
{Let be the length of the original sequence,
be the -th element in sequence , and
be the -th element in sequence }
for := 1 to
:= 1
for := 1 to ( - 1)
if and
:= + 1
return { is the helper sequence}
DreamGrid has derived the helper sequence using the program, but the original sequence is stolen by BaoBao and is lost! All DreamGrid has in hand now is the helper sequence and two range sequences and indicating that for all .
Please help DreamGrid restore the original sequence which is compatible with the helper sequence and the two range sequences.
Input
There are multiple test cases. The first line of the input contains an integer , indicating the number of test cases. For each test case:
The first line contains an integer (), indicating the length of the original sequence.
The second line contains integers () seperated by a space, indicating the helper sequence.
For the following lines, the -th line contains two integers and (), indicating the range sequences.
It's guaranteed that the original sequence exists, and the sum of of all test cases will not exceed .
Output
For each test case output one line containing integers separated by a space, indicating the original sequence. If there are multiple valid answers, print any of them.
Please, DO NOT print extra spaces at the end of each line, or your solution may be considered incorrect!
Sample Input
4
6
1 2 3 2 4 3
0 5
2 4
3 3
1 2
3 5
1 5
5
1 2 1 3 1
100 200
200 300
200 400
400 500
100 500
7
1 2 3 1 1 4 2
0 3
0 3
0 3
0 3
0 3
0 3
0 3
2
1 1
1 2
2 3
Sample Output
1 2 3 2 5 3
200 300 200 500 200
0 1 2 0 0 3 1
2 2
题解:
若i位置有fi,ai,则之前若有j<i且fi==fj,则ai<=aj
若有fi==fj+,则ai>aj
只需从后往前遍历一遍ai<=aj确定一个下限,然后
从前到后跑一边ai<aj更新下限即可
代码: #include<bits/stdc++.h>
using namespace std;
#define ll long long
const int maxn=1e5+;
int a[maxn],d[maxn],L[maxn],pre[maxn];
int main()
{
int T;scanf("%d",&T);
while(T--)
{
memset(pre,-,sizeof(pre));
int n;scanf("%d",&n);
for(int i=;i<=n;i++)scanf("%d",&a[i]);
for(int i=;i<=n;i++)
{
int x;scanf("%d%d",&L[i],&x);
}
for(int i=n;i>=;i--)
{
d[i]=L[i];
if(pre[a[i]]!=-)d[i]=max(d[pre[a[i]]],L[i]);
pre[a[i]]=i;
}
memset(pre,-,sizeof(pre));
for(int i=;i<=n;i++)
{
int x=pre[a[i]-];
if(x!=-)d[i]=max(d[i],d[x]+);
pre[a[i]]=i;
}
for(int i=;i<=n;i++)
{
printf("%d",d[i]);
if(i!=n)printf(" ");
else printf("\n");
}
}
return ;
}
第15届浙江省赛 E LIS的更多相关文章
- 第15届浙江省赛 D Sequence Swapping(dp)
Sequence Swapping Time Limit: 1 Second Memory Limit: 65536 KB BaoBao has just found a strange s ...
- ZOJ 3879 Capture the Flag 15年浙江省赛K题
每年省赛必有的一道模拟题,描述都是非常的长,题目都是蛮好写的... sigh... 比赛的时候没有写出这道题目 :( 题意:首先输入4个数,n,q,p,c代表有n个队伍,q个服务器,每支队伍的初始分数 ...
- CSUST 第15届 校赛总结
一直想记录一下自己的比赛,却感觉空间说说有点不适,思考了一番还是打算放到自己的博客园 这次比赛总体来说还是不错,签到还是稳的一批,基本前四小时都在rk1 开局切了几道签到题,然后开了一道思维gcd,正 ...
- ZOJ 3872 Beauty of Array DP 15年浙江省赛D题
也是一道比赛时候没有写出来的题目,队友想到了解法不过最后匆匆忙忙没有 A 掉 What a pity... 题意:定义Beauty数是一个序列里所有不相同的数的和,求一个序列所有字序列的Beauty和 ...
- ZOJ 3781 - Paint the Grid Reloaded - [DFS连通块缩点建图+BFS求深度][第11届浙江省赛F题]
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3781 Time Limit: 2 Seconds Me ...
- ZOJ 3780 - Paint the Grid Again - [模拟][第11届浙江省赛E题]
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3780 Time Limit: 2 Seconds Me ...
- ZOJ 3777 - Problem Arrangement - [状压DP][第11届浙江省赛B题]
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3777 Time Limit: 2 Seconds Me ...
- 第十五届浙江省赛 F Now Loading!!!
Now Loading!!! Time Limit: 1 Second Memory Limit: 131072 KB DreamGrid has integers . DreamGrid ...
- 2016第十三届浙江省赛 D - The Lucky Week
D - The Lucky Week Edward, the headmaster of the Marjar University, is very busy every day and alway ...
随机推荐
- JNIjw02
1.VC6(CPP)的DLL代码: #include<stdio.h> #include "jniZ_JNIjw02.h" JNIEXPORT void JNICALL ...
- pandas 数据处理
1. 查看数值数据的整体分布情况 datafram.describe() 输出: agecount 1463.000000mean 22.948052std 8.385384min 13.000000 ...
- mysql数据库优化课程---6、mysql结构化查询语言有哪些
mysql数据库优化课程---6.mysql结构化查询语言有哪些 一.总结 一句话总结:主要分为四类 1.DCL 数据控制语言1)grant2)commit3)rollback 2.DDL 数据定义语 ...
- eclipse导入android项目错误,项目名称上有红叉,但代码中无报错
首先,在项目上右键,属性,选择编译目标,选择android版本或把Android的版本调高一点.
- [csharp] bool IsNumeric(Type type)
/* "C:\Program Files (x86)\MSBuild\14.0\Bin\csc.exe" /out:IsNumericType.exe IsNumericType. ...
- 23-THREE.JS 光照材质
<!DOCTYPE html> <html> <head> <title></title> <script src="htt ...
- python基础之socket编程(二)
ssh远程执行命令: 思路分析: 客户端给服务端发送命令,服务端返回一个输出结果传给客户端. #coding:utf-8 #买手机 import socket import struct import ...
- ajax跨域解决
https://blog.csdn.net/csdn_ds/article/details/73691134 Access-Control-Allow-Origin 跨域设置多域名:http://ww ...
- 2018下C程序设计(上)第0次作业
1.翻阅邹欣老师博客关于师生关系博客,并回答下列问题: (1)大学和高中最大的不同是什么?请看大学理想的师生关系是?有何感想? 我认为大学和高中最大的不同在于我们(包括老师)对学习的态度.在高中,学生 ...
- php session在高并发时可能存在的问题。
如果同一个客户端并发发送多个请求,而每个请求都使用了Session,那么PHP Session锁的存在会导致服务器串行响应这些请求,而不是并行.这是因为在默认情况下,PHP使用文件存储Session数 ...