cf1144G 将串分解成单调递增和递减子串(贪心)
这算哪门子dp..
具体做法就是贪心,建立两个vector存递增序列递减序列,操作过程中a可以合法地匀一个给b
就是判断第i个数放在递增序列里还是放在递减序列里,需要根据后面的数来进行决策
#include<bits/stdc++.h>
#define ll long long
#define P pair<ll,ll>
#define mp make_pair
#define fi first
#define se second
#define N 200100
using namespace std; ll n,m,num[N],sy[N];
vector<P>a,b; int main()
{
ll i,j,p,q;
cin>>n;
for(i=;i<=n;i++) scanf("%lld",&num[i]);
a.push_back(mp(-,));
b.push_back(mp(N,));
for(i=;i<=n;i++)
{
if(num[i]<=a.back().fi&&num[i]>=b.back().fi)
{
puts("NO");
return ;
}
if(num[i]>a.back().fi)
{
sy[i]=;
a.push_back(mp(num[i],i));
continue;
}
if(a.back().fi<b.back().fi&&a.back().se>b.back().se)
{
sy[a.back().se]=;
b.push_back(a.back());
a.pop_back();
}
if(num[i]>a.back().fi)
{
sy[i]=;
a.push_back(mp(num[i],i));
continue;
}
if(num[i]<b.back().fi)
{
sy[i]=;
b.push_back(mp(num[i],i));
continue;
}
puts("NO");
return ;
}
puts("YES");
for(i=;i<=n;i++) printf("%lld ",sy[i]);
}
cf1144G 将串分解成单调递增和递减子串(贪心)的更多相关文章
- [C++] 动态规划之矩阵连乘、最长公共子序列、最大子段和、最长单调递增子序列、0-1背包
一.动态规划的基本思想 动态规划算法通常用于求解具有某种最优性质的问题.在这类问题中,可能会有许多可行解.每一个解都对应于一个值,我们希望找到具有最优值的解. 将待求解问题分解成若干个子问题,先求解子 ...
- NYOJ17,单调递增最长子序列
单调递增最长子序列 时间限制:3000 ms | 内存限制:65535 KB 难度:4 描写叙述 求一个字符串的最长递增子序列的长度 如:dabdbf最长递增子序列就是abdf.长度为4 输入 第 ...
- nyoj 单调递增子序列(二)
单调递增子序列(二) 时间限制:1000 ms | 内存限制:65535 KB 难度:4 描述 给定一整型数列{a1,a2...,an}(0<n<=100000),找出单调递增最长 ...
- [LeetCode] 926. Flip String to Monotone Increasing 翻转字符串到单调递增
A string of '0's and '1's is monotone increasing if it consists of some number of '0's (possibly 0), ...
- 【LeetCode】738. 单调递增的数字
738. 单调递增的数字 知识点:字符串:贪心 题目描述 给定一个非负整数 N,找出小于或等于 N 的最大的整数,同时这个整数需要满足其各个位数上的数字是单调递增. (当且仅当每个相邻位数上的数字 x ...
- 萌新笔记——C++里将string类字符串(utf-8编码)分解成单个字(可中英混输)
最近在建词典,使用Trie字典树,需要把字符串分解成单个字.由于传入的字符串中可能包含中文或者英文,它们的字节数并不相同.一开始天真地认为中文就是两个字节,于是很happy地直接判断当前位置的字符的A ...
- 将形如:Oct 8, 2016 5:29:44 PM串转换成正常时间在真机上遇到的坑
将形如:Oct 8, 2016 5:29:44 PM串转换成正常时间在真机上遇到的坑 /** * 根据传入字符串 * * @param str 传入的日期字符串 形如:Oct 8, 2016 5:29 ...
- 百度在线笔试编程测试题(Python):整数分解成素数的积
编程测试题: 输入一个正整数将其分解成素数的乘积,输入格式连续输入m个数,然后将这m个数分别分解,如 输入: 2 10 20 输出: 2 5 2 2 5 Python code: def primes ...
- 使用List把一个长字符串分解成若干个短字符串
把一个长字符串分解成若干个固定长度的短字符串,由于事先不知道长字符串的长度,以及短字符串的数量,只能使用List. public static void get_list_sbody(String s ...
随机推荐
- java多线程面试题小结
http://www.importnew.com/12773.html http://www.cnblogs.com/fingerboy/p/5352880.html https://blog.csd ...
- python基础-----变量和简单数据类型
初识变量 1.变量命名规则: a.字母 b.数字(不能开头) c.下划线 ps.硬性规定,命名必须是字母,数字,下划线,且不能以数字开头. 软性规则,以下划线分割 2.实例: a.写法: age_of ...
- DataGrid列中加入CheckBox 全选 点击Header全选 和 只操作选中部分 功能的实现
先写个效果 中午接着写 反正没人看 只是给自己记录
- 网络爬虫re模块的findall()函数
findall()函数匹配所有符合规律的内容,并以列表的形式返回结果. a = '"<div>指数' \ '</div>"' word = re.finda ...
- 从无文件技术到使用隐写术:检查Powload的演变
来源:https://blog.trendmicro.com/trendlabs-security-intelligence/from-fileless-techniques-to-using-ste ...
- BIM开发引挈
BIM开发引挈: 0.three.js https://threejs.org/ 1. 陕西葛兰岱尔网络科技有限公司 www.glendale.com.cn 基于WebGL BIM轻 ...
- Liunx 网络神器之抓包 --tcpdump
作者:邓聪聪 简介 用简单的话来定义tcpdump,就是:dump the traffic on a network,根据使用者的定义对网络上的数据包进行截获的包分析工具. tcpdump可以将网络中 ...
- DHCP Server (推荐使用Windows)
一些小的服务 windows做的比linux好 DHCP服务概述: 名称:DHCP (Dynamic Host Configuration Protocol --动态主机配置协议) 功能:是一个局域网 ...
- 蓝皮书:异象石 【dfs序+lca】
题目详见蓝皮书[算法竞赛:进阶指南]. 题目大意: 就是给你一颗树,然后我们要在上面进行三种操作: 1.标记某个点 或者 2.撤销某个点的标记 以及 3.询问标记点在树上连通所需的最短总边 ...
- 【笔记】[WIN7x64] ThinkPad E420开机不能按设置关闭触控板的问题
将win7x32重装为Win7x64后,TouchPad(以下简称TP)就不能在开机时按照在控制面板-鼠标中的设置关闭TP, 从而每次开机都必须去点开控制面板->鼠标 才能关闭TP.因为通常不用 ...