题目:https://codeforces.com/problemset/problem/1144/G

题意:

将一个序列分成两个序列,两个序列中元素的相对顺序保持和原序列不变,使得分出的两个序列一个严格上升,一个严格下降。

思路:

对于第 i 个数 , 我们应该分析什么情况可以放入升序什么情况放入降序 ; 最容易的情况就是第 i 个数只能放在特定的一个序列中 , 与都不能放在序列中也就是 NO 的情况 ;

假如此时的 i 是可以放入升序与降序的时候 , 我们就用a[i]  与a[ i+1 ] 比较 , 如果 a[i] > a[i+1]  很显扬是把a[i] 放入到降序中 , 因为这样a[i+1] 如果不能放入升序则可以放到降序 中 ; a[i] < a[i+1] 反之 , 那如果a[i]==a[i+1] ,就两个序列分别进一个呗;

#include<bits/stdc++.h>
using namespace std;
vector<int>H;
vector<int>L;
int a[];
bool vis[];
int main()
{ int n;scanf("%d",&n);
for(int i= ; i<=n ;i++)
{
scanf("%d",&a[i]);
}
bool T=;
for(int i= ; i<=n ; )
{ bool faH= , faL=;
int tailH=H.size()- , tailL=L.size()-; if(H.size()==) faH=;
else if(H[tailH]<a[i]) faH=;
if(L.size()==) faL=;
else if(L[tailL]>a[i]) faL=;
// printf("%d %d %d\n",faH,faL,H.size()); if(faH==&&faL==)
{
T=;break;
}
if(faH==&&faL==)
{
L.push_back(a[i]);
vis[i]=;i++;
}
if(faH==&&faL==)
{
H.push_back(a[i]);
vis[i]=;
i++;
}
if(faH==&&faL==)
{
if(a[i]<a[i+])
{
H.push_back(a[i]);
vis[i]=;i++;
}
else if(a[i]>a[i+])
{
L.push_back(a[i]);
vis[i]=;i++;
}
else
{
H.push_back(a[i]);
L.push_back(a[i+]);
vis[i]=;
vis[i+]=;
i+=;
} } }
if(T) puts("NO");
else
{
puts("YES");
for(int i= ; i<=n ; i++)
{
printf("%d ",vis[i]);
} }
}

参考:https://www.cnblogs.com/Dup4/p/10635933.html

1144G Two Merged Sequences ( 贪心+构造)的更多相关文章

  1. Codeforces 1144G Two Merged Sequences dp

    Two Merged Sequences 感觉是个垃圾题啊, 为什么过的人这么少.. dp[ i ][ 0 ]表示处理完前 i 个, 第 i 个是递增序列序列里的元素,递减序列的最大值. dp[ i ...

  2. Codeforces 1144G Two Merged Sequences

    题意: 将一个序列分成两个序列,两个序列中元素的相对顺序保持和原序列不变,使得分出的两个序列一个严格上升,一个严格下降. 思路: 我们考虑每个元素都要进入其中一个序列. 那么我们维护一个上升序列和一个 ...

  3. Codeforces #550 (Div3) - G.Two Merged Sequences(dp / 贪心)

    Problem  Codeforces #550 (Div3) - G.Two Merged Sequences Time Limit: 2000 mSec Problem Description T ...

  4. 贪心+构造 Codeforces Round #277 (Div. 2) C. Palindrome Transformation

    题目传送门 /* 贪心+构造:因为是对称的,可以全都左一半考虑,过程很简单,但是能想到就很难了 */ /************************************************ ...

  5. 贪心/构造/DP 杂题选做

    本博客将会收录一些贪心/构造的我认为较有价值的题目,这样可以有效的避免日后碰到 P7115 或者 P7915 这样的题就束手无策进而垫底的情况/dk 某些题目虽然跟贪心关系不大,但是在 CF 上有个 ...

  6. 贪心/构造/DP 杂题选做Ⅱ

    由于换了台电脑,而我的贪心 & 构造能力依然很拉跨,所以决定再开一个坑( 前传: 贪心/构造/DP 杂题选做 u1s1 我预感还有Ⅲ(欸,这不是我在多项式Ⅱ中说过的原话吗) 24. P5912 ...

  7. 贪心/构造/DP 杂题选做Ⅲ

    颓!颓!颓!(bushi 前传: 贪心/构造/DP 杂题选做 贪心/构造/DP 杂题选做Ⅱ 51. CF758E Broken Tree 讲个笑话,这道题是 11.3 模拟赛的 T2,模拟赛里那道题的 ...

  8. Two Merged Sequences CodeForces - 1144G (暴力)

    大意: 给定序列, 求划分为一个严格递增子序列和一个严格递减子序列, 可以为空. 跟 125D 类似的一个题, 直接暴力dfs, 用当前序列长度来剪枝, 状态不会太多, 但是会被一些数据卡掉, 特判一 ...

  9. URAL 1995 Illegal spices 贪心构造

    Illegal spices 题目连接: http://acm.timus.ru/problem.aspx?space=1&num=1995 Description Jabba: Han, m ...

随机推荐

  1. php常用 随机数

    <?php $number =range(1,50); //shuffle 将数组顺序随即打乱. shuffle($number); print_r($number); echo '<br ...

  2. c++ 桥接模式(bridge)

    桥接模式的目的是分离抽象实现部分,把数据和实现分开,降低耦合.桥接模式和适配器模式不同之处是,桥接模式一般会在软件设计初考虑使用,适配器模式在软件设计之后为了实现接口兼容时使用. 下面是系统和电脑之间 ...

  3. cocos2D-x demo 的源码分析 #define ..##.. 的妙用.

    最近在看cocos2d-x 但不知道如何下手,于是先看一下他编译的完成的testcpp的源码.发现了下面一段程序 typedef CCLayer* (*NEWTESTFUNC)(); #define ...

  4. Tensorflow学习(练习)—CPU训练模型

    Mask R-CNN - Train on Shapes Dataset This notebook shows how to train Mask R-CNN on your own dataset ...

  5. 532. K-diff Pairs in an Array绝对值差为k的数组对

    [抄题]: Given an array of integers and an integer k, you need to find the number of unique k-diff pair ...

  6. “Device eth0 has different MAC address than expected, ignoring.”问题

    配IP后进行激活的时候提示如下错误:("Device eth0 has different MAC address than expected, ignoring.") 百度了下, ...

  7. c# 二分查找法(2分钟算法)

    using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threa ...

  8. 半平面交 (poj 1279(第一道半平面NlogN)完整注释 )

    半平面交的O(nlogn)算法(转载) 求n个半平面的交有三种做法: 第一种就是用每个平面去切割已有的凸多边形,复杂度O(n^2). 第二种就是传说中的分治算法.将n个半平面分成两个部分,分别求完交之 ...

  9. (转)IIS处理并发请求时出现的问题及解决

    原文地址:http://www.cnblogs.com/hgamezoom/p/3082538.html 一个ASP.NET项目在部署到生产环境时,当用户并发量达到200左右时,IIS出现了明显的请求 ...

  10. 编写高质量代码改善C#程序的157个建议——建议32:总是优先考虑泛型

    建议32:总是优先考虑泛型 泛型的优点是多方面的,无论泛型类还是泛型方法都同时具备可重用性.类型安全性和高效率等特性,这是非泛型和非泛型方法无法具备的. 以可重用性为例: class MyList { ...