题意

https://vjudge.net/problem/CodeForces-1265D

a个0,b个1,c个2,d个3,问是否存在一种排列方案使得任意相邻两数之差==1

思路

分类讨论太麻烦了,直接暴力搞!

枚举0123每个数作为第一个数,然后优先看这个数-1还有没有,有的话就放进去,没有就看这个数+1,如果两个都没有了,那就break,最后判断0123的数量是否都为0即可。

为什么要先放x-1?这是一种贪心的思路,放了x+1的话那么x-1在后面可能就放不了了,所以优先放x-1。

代码

#include<bits/stdc++.h>
using namespace std;
#define inf 0x3f3f3f3f
#define ll long long
const int N=200005;
const int mod=1e9+7;
const double eps=1e-8;
const double PI = acos(-1.0);
#define lowbit(x) (x&(-x))
ll p[N],q[N];
vector<int> ans;
int main()
{
std::ios::sync_with_stdio(false);
cin>>p[0]>>p[1]>>p[2]>>p[3];
for(int i=0; i<4; i++)
{
for(int j=0; j<4; j++)
q[j]=p[j];
int x=i;
if(!q[x]) continue;
ans.clear();
q[x]--;
ans.push_back(x);
while(1)
{
if(x&&q[x-1])
--x,q[x]--,ans.push_back(x);
else if(x!=3&&q[x+1])
++x,q[x]--,ans.push_back(x);
else
break;
}
if(!q[0]&&!q[1]&&!q[2]&&!q[3])
{
cout<<"YES"<<endl;
for(int it:ans)
{
cout<<it<<" ";
}
cout<<endl;
return 0;
}
}
cout<<"NO"<<endl;
return 0;
}

  

CodeForces - 1265D(贪心+暴力)的更多相关文章

  1. Codeforces 990 调和级数路灯贪心暴力 DFS生成树两子树差调水 GCD树连通块暴力

    A 水题 /*Huyyt*/ #include<bits/stdc++.h> #define mem(a,b) memset(a,b,sizeof(a)) using namespace ...

  2. The 10th Shandong Provincial Collegiate Programming Contest H.Tokens on the Segments(贪心+优先级队列 or 贪心+暴力)

    传送门 •题意 二维平面上有 n 条线段,每条线段坐标为 $(l_i,i),(r_i,i)$: 平面上的每个整点坐标上都可以放置一枚硬币,但是要求任意两枚硬币的横坐标不相同: 问最多有多少条线段可以放 ...

  3. CodeForces 712C Memory and De-Evolution (贪心+暴力)

    题意:现在有一个长度为 x 的正三角形,每次可以把一条边减小,然后用最少的时间变成长度为 y 的正三角形. 析:一开始,正着想,然后有一个问题,就是第一次减小多少才能最快呢?这个好像并不好确定,然后我 ...

  4. CodeForces - 1250B The Feast and the Bus (贪心+暴力)

    题意 https://vjudge.net/problem/CodeForces-1250B 每个人属于队伍ai,汽车一次至多载两只队伍(全员),费用为车的容量*载人次数,问最少花费. 思路 k(队伍 ...

  5. Diverse Garland CodeForces - 1108D (贪心+暴力枚举)

    You have a garland consisting of nn lamps. Each lamp is colored red, green or blue. The color of the ...

  6. Codeforces 734C [水][暴力][贪心]

    题意: 要生产n个物品,每个花费时间为x. 有两种魔法,每种最多使用1个. 其中第一种魔法可以使每个物品生产的花费时间变为ai,相应的花费是bi;第二种魔法可以减少ci个物品,相应的花费是di,并且保 ...

  7. Karen and Game CodeForces - 816C (暴力+构造)

    On the way to school, Karen became fixated on the puzzle game on her phone! The game is played as fo ...

  8. CodeForces - 589B(暴力+排序)

    Dasha decided to bake a big and tasty layer cake. In order to do that she went shopping and bought n ...

  9. CodeForces - 893D 贪心

    http://codeforces.com/problemset/problem/893/D 题意 Recenlty Luba有一张信用卡可用,一开始金额为0,每天早上可以去充任意数量的钱.到了晚上, ...

随机推荐

  1. 2017 ACM/ICPC 沈阳 L题 Tree

    Consider a un-rooted tree T which is not the biological significance of tree or plant, but a tree as ...

  2. CC1605&CC1604 usb3.0+FPGA 高速视频采集 双目相机测评

    CC1605&CC1604 usb3.0+FPGA 高速视频采集 双目相机测评 摄像头配置:ov5640.OV5642.mt9p031.mt9m001c12stm OV5640 xclk:24 ...

  3. 重排数列-Java实现(2018网易校招研发岗)

    题目: 链接:https://www.nowcoder.com/questionTerminal/6c184566ecff4d3baff3536449d4a3e2 来源:牛客网 小易有一个长度为N的正 ...

  4. linux 各目录 常用用处

    /bin : 存储常 用用户指令 /boot : 存储 核心.模块 映像等启 动用文件/dev : 存储 设备文件/etc : 存储 系统. 服 务的配置目录 与 文件/home : 存放 个人主目录 ...

  5. 一线互联网公司Redis使用精髓,你必须要掌握这4点!

    先来看一下这些Redis面试题你会几道? 1.什么是 Redis?简述它的优缺点? 2.Redis 与 memcached 相比有哪些优势? 3.Redis 支持哪几种数据类型? 4.Redis 主要 ...

  6. 备战“金九银十”10道String高频面试题解析

    前言 String 是我们实际开发中使用频率非常高的类,Java 可以通过 String 类来创建和操作字符串,使用频率越高的类,我们就越容易忽视它,因为见的多所以熟悉,因为熟悉所以认为它很简单,其实 ...

  7. where和having区别

    壹: where后面不能跟聚合函数(sum.avg.count.max.min) having后面可以跟 贰: where和having都能用: select goods_price,goods_na ...

  8. python学习-if

    # 判断"""if 条件(True/False): 条件为真时,执行的代码(要干的事情)[elif 条件: 条件为真时,执行的代码(要干的事情)elif 条件: 条件为真 ...

  9. AES-加密解密工具类

    注意:AES加密算法对于不同系统之间的tokens可能会不同,需要在相同的系统间使用 如果设置为private,在其它类调用AES访问不了这个tokens常量,需要自主定义一个tokens或者在配置文 ...

  10. 使用 Vue + axios 时,返回状态200,返回值被浏览器拦截

    目录 一.前言 二.解决方案 1. 在全局定义 2. 单独定义 一.前言 在使用 Vue + TypeScript + axios 时,后端已经配置了Cors的前提下,但是在请求接口的时候,返回状态为 ...