[CF1304D] Shortest and Longest LIS - 贪心

看样例,>><>><,要构造 LIS 最短的,我们需要找最小链划分的方案,即包含最少的下降列
很容易想到把连续 < 的看成一段,比如样例就是
.|.|. .|.|. .
每一段内必须上升,考虑让它连续,然后让段末取当前没取过的最大值即可
要构造 LIS 最长的,同理,我们把连续 > 的堪称一段,比如样例就是
. . .|. . .|.
每段内必须下降,考虑让它连续,然后让段膜取当前没去过的最小值即可
#include <bits/stdc++.h>
using namespace std;
const int N = 2e5+5;
int t,n;
char s[N];
signed main() {
    ios::sync_with_stdio(false);
    cin>>t;
    while(t--) {
        cin>>n>>s+1;
        int now,i,j;
        now=n; i=1; j=1;
        while(i<=n) {
            j=i;
            while(j<n && s[j]=='<') ++j;
            for(int k=i;k<=j;k++) cout<<now-j+k<<" ";
            now-=(j-i+1);
            i=j+1;
        }
        cout<<endl;
        now=1; i=1; j=1;
        while(i<=n) {
            j=i;
            while(j<n && s[j]=='>') ++j;
            for(int k=i;k<=j;k++) cout<<now+j-k<<" ";
            now+=j-i+1;
            i=j+1;
        }
        cout<<endl;
    }
}
												
											[CF1304D] Shortest and Longest LIS - 贪心的更多相关文章
- Shortest and Longest LIS
		
Codeforces Round #620 (Div. 2) D. Shortest and Longest LIS 题解: 贪心即可,对于最短序列,我们尽可能用可用的最大数字放入序列中,对于最长序列 ...
 - Codeforces 1304D. Shortest and Longest LIS 代码(构造 贪心)
		
https://codeforces.com/contest/1304/problem/D #include<bits/stdc++.h> using namespace std; voi ...
 - Codeforces 1304D. Shortest and Longest LIS
		
根据题目,我们可以找最短的LIS和最长的LIS,找最短LIS时,可以将每一个increase序列分成一组,从左到右将最大的还未选择的数字填写进去,不同组之间一定不会存在s[i]<s[j]的情况, ...
 - Codeforces1304D Shortest and Longest LIS
		
前置扯淡 %%@\(wucstido\),思路是在是巧妙---link Description 给一个长度为\(n\)由 \(<\) 和 \(>\)组成的字符串,表示序列中相邻位置的数的大 ...
 - Vijos p1303导弹拦截(LIS+贪心)
		
传送门:https://vijos.org/p/1303 背景 实中编程者联盟为了培养技术精湛的后备人才,必须从基础题開始训练. 描写叙述 某国为了防御敌国的导弹突击,研发出一种导弹拦截系统. 可是这 ...
 - cf 之lis+贪心+思维+并查集
		
https://codeforces.com/contest/1257/problem/E 题意:有三个集合集合里面的数字可以随意变换位置,不同集合的数字,如从第一个A集合取一个数字到B集合那操作数+ ...
 - BZOJ 1046 [HAOI2007]上升序列(LIS + 贪心)
		
题意: m次询问,问下标最小字典序的长度为x的LIS是什么 n<=10000, m<=1000 思路: 先nlogn求出f[i]为以a[i]开头的LIS长度 然后贪心即可,复杂度nm 我们 ...
 - 类似LIS+贪心(ZOJ1025)
		
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=25 解题报告: #include <cstdio> #in ...
 - [CF1034B] Longest Palindrome - 贪心
		
如果自己是回文串可以做中心 如果一个串和另一个串的转置相等则可以凑一对 优先配对 #include <bits/stdc++.h> using namespace std; int n,m ...
 
随机推荐
- 进阶之路 | 奇妙的Animation之旅
			
前言 本文已经收录到我的Github个人博客,欢迎大佬们光临寒舍: 我的GIthub博客 学习清单: 动画的种类 自定义View动画 View动画的特殊使用场景 属性动画 使用动画的注意事项 一.为什 ...
 - fancybox图片灯箱功能
			
fancybox图片灯箱功能 在页面中引入几个文件 <script src="https://cdn.jsdelivr.net/npm/jquery@3.4.1/dist/jquery ...
 - Oracle导出警告“EXP-00003: 未找到段 (0,0) 的存储定义”解决
			
环境:CentOS7.4 Oracle11.2.0.4(搭建rac集群) 问题描述:在使用exp命令执行导出的时候,部分表提示“EXP-00003: 未找到段 (0,0) 的存储定义”警告. 问题 ...
 - 解决visual studio 2013编译过程中存在的无法打开kernel.lib问题
			
1. 出现此类问题的原因 由于原visual studio文件中的安装中出现问题,所以原有的SDK(soft development kits)文件出现缺失: 2. 解决方法1 重新下载SDK工具,安 ...
 - Mac 下如何判断 WIFI 的极限传输速度还有信号强度?
			
每当你加入一个无线网络后,按住Option键并点击屏幕右上角的Wi-Fi图标,就会发现除了平常的各种网络外,还出现了关于网络连接技术细节的列表. 比如说,如果想知道信号强度的信息,则需要尤其关注列表中 ...
 - pom.xml配置文件详解(Maven)
			
注:博主 Chloneda:个人博客 | 博客园 | Github | Gitee | 知乎 注:本文转载自:https://blog.csdn.net/u012152619/article/deta ...
 - What is NodeJS(学习过程)
			
为什么要学习node.首先是听说了这个和前后端分离有很大的关系.node作为一个基础的技术,需要提前学习.学习node,不打算直接先跟着视频去学习老师们的课程.因为想自己找到一种适合自己的学习方法.之 ...
 - lucas定理及其拓展的推导
			
lucas定理及其拓展的推导 我的前一篇博客-- lucas定理 https://mp.csdn.net/mdeditor/100550317#主要是给出了lucas的结论和模板,不涉及推导. 本篇文 ...
 - mysql将bin-log日志文件转为sql文件
			
查看mysqlbinlog版本 mysqlbinlog -V [--version] 查看binlog日志开启状态 show variables like '%log_bin%'; mysql打开bi ...
 - Process、管理者权限、注册表、xml修改
			
//判断是否有管理者权限 WindowsPrincipal principal = new WindowsPrincipal(WindowsIdentity.GetCurrent()); if (!p ...