Atcoder(134)E - Sequence Decomposing
E - Sequence Decomposing
Time Limit: 2 sec / Memory Limit: 1024 MB
Score : 500500 points
Problem Statement
You are given a sequence with NN integers: A={A1,A2,⋯,AN}A={A1,A2,⋯,AN}. For each of these NN integers, we will choose a color and paint the integer with that color. Here the following condition must be satisfied:
- If AiAi and AjAj (i<j)(i<j) are painted with the same color, Ai<AjAi<Aj.
Find the minimum number of colors required to satisfy the condition.
Constraints
- 1≤N≤1051≤N≤105
- 0≤Ai≤1090≤Ai≤109
Input
Input is given from Standard Input in the following format:
NN
A1A1
::
ANAN
Output
Print the minimum number of colors required to satisfy the condition.
Sample Input 1 Copy
5
2
1
4
5
3
Sample Output 1 Copy
2
We can satisfy the condition with two colors by, for example, painting 22 and 33 red and painting 11, 44, and 55 blue.
Sample Input 2 Copy
4
0
0
0
0
Sample Output 2 Copy
4
We have to paint all the integers with distinct colors.
题意:给定一个数字串,按照从前往后从小到大进行组合,最少能组合成几条这样的数字串。
利用STL进行模拟
数据范围是1e5,时间是2s,则算法需要nlgn
通过二分法进行查找,和for遍历一遍
算法1:
将数字串全部-1,进行反转,转化成从前往后从大到小进行组合;
通过vector数组进行模拟,利用upper_bound()进行查找在其前边比其 大的值进行替换为本值,没有比其大的值就push_back()此值,拿此值作为另一串的开头。
//lower_bound()和upper_bound()的区别
时间复杂度都是lgn
lower_bound(a.begin(),a,end(),key) 是查找大于等于key的位置
upper_bound(a.begin(),a.end(),key)是查找大于key 的位置
#include<iostream>
#include<vector>
#include<algorithm> using namespace std; int main ()
{
int n;
cin>>n;
int a;
vector<int>b;
while(n--)
{
cin>>a;
a*=-1;
int it=upper_bound(b.begin(),b.end(),a)-b.begin();
if(it==b.size())
{
b.push_back(a);
}
else
b[it]=a; }
cout<<b.size()<<endl;
return 0;
}
算法2:利用deque//双端队列(速度非常快)
#include<iostream>
#include<deque>
using namespace std; int main ()
{
int n;
cin>>n;
int a;
deque<int>b;
for(int i=0;i<n;i++)
{
cin>>a;
int it= lower_bound(b.begin(),b.end(),a)-b.begin();
if(!it)
b.push_front(a);
else
b[it-1]=a;
}
cout<<b.size()<<endl; return 0;
}
Atcoder(134)E - Sequence Decomposing的更多相关文章
- AtCoder Beginner Contest 134-E - Sequence Decomposing
(https://atcoder.jp/contests/abc134/tasks/abc134_e) 题意:找出最小个数的最长上升子序列 思路:找出最长上升子序列的最小个数,只需要找出每个最小上升子 ...
- Atcoder E - RGB Sequence(dp)
题目链接:http://arc074.contest.atcoder.jp/tasks/arc074_c 题意:一共有3种颜色,红色,绿色,蓝色.给出m个要求l,r,x表示在区间[l,r]内要有x种不 ...
- AtCoder AGC031D A Sequence of Permutations (群论、置换快速幂)
题目链接 https://atcoder.jp/contests/agc031/tasks/agc031_d 题解 这居然真的是个找规律神题... 首先要明白置换的一些基本定义,置换\(p\)和\(q ...
- AtCoder - 2567 RGB Sequence
Problem Statement There are N squares arranged in a row. The squares are numbered 1, 2, …, N, from l ...
- AtCoder - 3962 Sequence Growing Hard
Problem Statement Find the number of the possible tuples of sequences (A0,A1,…,AN) that satisfy all ...
- AtCoder Regular Contest 074 E:RGB Sequence
题目传送门:https://arc074.contest.atcoder.jp/tasks/arc074_c 题目翻译 给你一行\(n\)个格子,你需要给每个格子填红绿蓝三色之一,并且同时满足\(m\ ...
- AtCoder Grand Contest 003 E - Sequential operations on Sequence
题目传送门:https://agc003.contest.atcoder.jp/tasks/agc003_e 题目大意 一串数,初始为\(1\sim N\),现有\(Q\)个操作,每次操作会把数组长度 ...
- Atcoder Grand Contest 024 E - Sequence Growing Hard(dp+思维)
题目传送门 典型的 Atcoder 风格的计数 dp. 题目可以转化为每次在序列中插入一个 \([1,k]\) 的数,共操作 \(n\) 次,满足后一个序列的字典序严格大于前一个序列,问有多少种操作序 ...
- Atcoder Grand Contest 031 D - A Sequence of Permutations(置换+猜结论)
Atcoder 题面传送门 & 洛谷题面传送门 猜结论神题. 首先考虑探究题目中 \(f\) 函数的性质,\(f(p,q)_{p_i}=q_i\leftarrow f(p,q)\circ p= ...
随机推荐
- Windows下如何玩转火热的go-zero
作者:阿啄debugIT 前言 go-zero 是一个集成了各种工程实践的 web 和 rpc 框架.通过弹性设计保障了大并发服务端的稳定性,经受了充分的实战检验. go-zero 包含极简的 API ...
- ubuntu环境下搭建Hadoop集群中必须需要注意的问题
博主安装的hadoop是3.1.3这里是按照厦门大学那个博客安装的,在安装与启动过程中,费了不少事,特此记录一下问题. 安装的连接: 安装环境:http://dblab.xmu.edu.cn/blog ...
- Kubernetes K8S之kube-prometheus概述与部署
Kubernetes K8S之kube-prometheus概述与部署 主机配置规划 服务器名称(hostname) 系统版本 配置 内网IP 外网IP(模拟) k8s-master CentOS7. ...
- CSAPP:Lab1 -DataLab 超详解
写在前面 之前考研的时候csapp的书有刷过5,6遍,所以对书本知识还算比较了解.恰逢最近在学c++的时候,顺带刷一下大名鼎鼎的csapp实验. 0. 环境准备 最好准备一个纯净的Linux系统这里建 ...
- 透过现象看本质:Java类动态加载和热替换
摘要:本文主要介绍类加载器.自定义类加载器及类的加载和卸载等内容,并举例介绍了Java类的热替换. 最近,遇到了两个和Java类的加载和卸载相关的问题: 1) 是一道关于Java的判断题:一个类被首次 ...
- SAP轻松访问会话管理器等设置
对于SAP的登陆后初始界面,是有一个配置表,可以进行设置的,例如隐藏SAP的标准菜单,设置轻松访问页面右边的图片内容等等这一切的设置都可以通过维护SSM_CUST表来实现可以通过SM30来维护内容,该 ...
- mybatis-plubs条件构造器中的方法所对应的sql语法
[通用条件:] [比较大小: ( =, <>, >, >=, <, <= )] eq(R column, Object val); // 等价于 =,例: eq(& ...
- 别再问我们用什么画图的了!问就是excalidraw
每次发 https://github.com/tal-tech/go-zero 相关文章时,都会有读者问我们用什么画图的. 这图什么工具画的呀?好看! 这个手绘风格真好看,用啥工具画的呀? 可不可以介 ...
- Java优先队列PriorityQueue的各种打开方式以及一些你不知道的细节
目录 Java优先队列PriorityQueue的各种打开方式以及一些你不知道的细节 优先队列的默认用法-从小到大排序 对String类用优先队列从大到小排序 通过自定义比较器对自定义的类进行从小到大 ...
- Java中的Date类型无法赋值给数据库的datetime类型
因为Java中new Date()的结果是"Thu Aug 27 19:03:54 CST 2020",而mysql中的datetime不接受这样的日期格式,插入数据会报错. 解决 ...