题目链接:点击查看

题目大意:给出a个0,b个1,c个2,d个3,要求构造一种序列,使得数列两两之间绝对值之差等于1,若不能构造输出NO

题目分析:首先我们需要稍微讨论一下特殊情况,那就是对于两端的数字0和数字3,因为若这两个数字,0只能和1匹配,也就是两侧必须都是1,同理,3的两侧必须都是2,所以我们可以简单讨论一下,分为两种特殊情况:

  1. a>b,此时的形式只能为01交叉,且首尾都为0,必须满足:a-b==1&&c==0&&d==0,否则无解
  2. d>c,同上,必须满足:d-c==1&&a==0&&b==0,否则无解

处理完以上两种特殊情况后,我们就来处理一般情况,首先我们先将四个数从中间切断,分为两组形式,因为上面的特殊情况已经处理完毕了,所以现在一定满足a<=b&&c>=d,这样我们就先让每个0与1匹配,形成全为0 1排列的串,我们记为ans1,消耗完所有的a后,剩余的b我们记为bb,同理处理c和d,我们将此子串记为ans2,用2 3串消耗完d后,剩余的c我们记为cc,此时必须让多余的bb和cc互相匹配,并且使其成为ans1与ans2的桥梁,所以必须用2 1串来匹配,这个时候必须满足abs(cc-bb)<=1,允许相差至多为1,因为多出来的1可以放到最前面与0匹配,同理多出来的2可以放到最后面与3匹配,但若相差大于1的话就无法完全匹配了

到此为止,我们就已经讨论完所有的情况了,按照上面的贪心策略构造答案就好了,记得准确输出空格,以及及时return

代码:

#include<iostream>
#include<cstdlib>
#include<string>
#include<cstring>
#include<cstdio>
#include<algorithm>
#include<climits>
#include<cmath>
#include<cctype>
#include<stack>
#include<queue>
#include<list>
#include<vector>
#include<set>
#include<map>
#include<sstream>
#include<unordered_map>
using namespace std;typedef long long LL;const int inf=0x3f3f3f3f;const int N=1e6+100;int main()
{
//  freopen("input.txt","r",stdin);
//  ios::sync_with_stdio(false);int a,b,c,d;scanf("%d%d%d%d",&a,&b,&c,&d);if(a>b){if(a-b==1&&!c&&!d){printf("YES\n");while(b--)printf("0 1 ");printf("0\n");return 0;}elsereturn 0*printf("NO\n");}if(d>c){if(d-c==1&&!a&&!b){printf("YES\n");while(c--)printf("3 2 ");printf("3\n");return 0;}elsereturn 0*printf("NO\n");}b-=a;c-=d;if(abs(b-c)<=1){printf("YES\n");if(b>c)printf("1 ");while(a--)printf("0 1 ");for(int i=0;i<min(b,c);i++)printf("2 1 ");while(d--)printf("2 3 ");if(c>b)printf("2");}elsereturn 0*printf("NO\n");return 0;
}

CodeForces - 1265D Beautiful Sequence(贪心+构造+思维)相关推荐

  1. CodeForces - 1256C Platforms Jumping(贪心+构造)

    题目链接:点击查看 题目大意:现在固定人初始时在点0处,现在我们需要跨过长度为n的一条河,到达对岸的点n+1处,给出m个木板,我们可以将这m个木板随意摆放,但相对位置不能改变,并且只能互相接触而不能互 ...

  2. CodeForces - 1255D Feeding Chicken(贪心+构造+模拟)

    题目链接:点击查看 题目大意:给出一个n*m的农场,其中'.'代表空地,'R'代表大米,现在有k只鸡需要分布在这个农场之中,需要满足以下条件: 每个方格都要被鸡占领 每只鸡至少占领一个方格 每只鸡占领 ...

  3. CodeForces - 798D Mike and distribution(构造+思维/玄学随机数)

    题目链接:点击查看 题目大意:给出两个长度为n的数列,现在要求选出n/2+1个位置,使得两个序列中这些位置的和分别大于各自序列之和的一半 题目分析:题意换句话说,是需要让我们从数组中选出一半,要大于另 ...

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

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

  5. 【牛客 - 318G】LLLYYY的数字思维 与【牛客 - 289J】这是一个沙雕题II(贪心构造)

    题干: LLLYYY很喜欢写暴力模拟贪心思维.某一天在机房,他突然抛给了队友ppq一 个问题.问题如下: 有一个函数f (): int f(int x){     int tmp = 0;     w ...

  6. Beautiful Sequence CodeForces - 1264B(暴力)

    An integer sequence is called beautiful if the difference between any two consecutive numbers is equ ...

  7. 2021年度训练联盟热身训练赛第五场 H题In-place Sorting+贪心构造

    题意: 给你n个小于101810^{18}1018的大数,问在可以再不改变序列位置,之改变数值中某数位的'9'变为'6'或将'6'变为'9',求的最终序列由小到大,且字典序最小. 题目: 链接:htt ...

  8. 【HDU - 6237】A Simple Stone Game(贪心,思维,素因子分解,数学)

    题干: After he has learned how to play Nim game, Bob begins to try another stone game which seems much ...

  9. 【CodeForces 1265C --- Beautiful Regional Contest】

    [CodeForces 1265C --- Beautiful Regional Contest] 题目来源:点击进入[CodeForces 1265C - Beautiful Regional Co ...

最新文章

  1. android读取大图片并缓存
  2. 执行cmd并获得结果_MySQL 服务无法启动 请键入 NET HELPMSG 3523 以获得更多的帮助...
  3. Javascript的原型链、instanceof与typeof
  4. react-native 相关问题
  5. hdu 5441 Travel(Kruskal+离线)
  6. python建立数据库并序列化_python之数据的序列化
  7. python sqlsever 时间_Python sqlalchemy时间戳及密码管理实现代码详解
  8. web项目jsp中无法引入js问题
  9. javascript判断是否手机设备+滑动事件
  10. java数字类型_Java数据类型
  11. flume拦截器及自定义拦截器
  12. 104 基于UDP协议的socket套接字编程
  13. MATLAB图像滤波去噪分析及其应用
  14. 园区内智慧出行标准化白皮书(2022年)
  15. matlab gui仿真实验,基于Matlab GUI设计的光学实验仿真
  16. 最常见绩效考核方法有哪些?5种有效方法介绍
  17. 怎样了解存在---辩证唯物主义认识论
  18. 关闭计算机后为什么重新启动,电脑关机后自动重启是怎么回事什么原因的解决方法 - 系统家园...
  19. CF Edu 53D Berland Fair 暴力,取模
  20. bios 刷 灵耀14_华硕灵耀Deluxe14笔记本装win10及bios设置教程(uefi+gpt)

热门文章

  1. 自我引用(Self reference)
  2. 微服务一定要使用Spring-Cloud吗?
  3. 高仿真的类-ApplicationContext
  4. 微服务架构的实施现状
  5. 对称加密-DES加密
  6. 角色操作-角色添加代码实现
  7. 角色操作-角色添加流程分析
  8. 使用Actuator检查与监控
  9. Java int -1无符号右移_java中的无符号右移
  10. 鸿蒙系统没有优势了吗,“鸿蒙系统”超震撼,带你细数它的优势