题目

给定一个长度为 \(n\) 的序列 \(a\),请将其重新排序,

新序列中任意相邻两个数之和都不能被 \(3\) 整除。


分析

分类讨论,如果只有3的倍数多于1个无解

没有 \(3k+1\) 或者没有 \(3k+2\) 很好做直接穿插

没有3的倍数如果同时存在 \(3k+1\) 和 \(3k+2\) 无解

否则 \(3k,3k+1,3k+2\) 均有

考虑 \(3k+1,3k+2\) 分开放,那么必须有一个\(3k\)放在两个中间,

然后由于\(3k\)不能相邻,那么直接穿插,如果还有剩余就是无解


代码

#include <cstdio>
#include <cctype>
#include <vector>
#define rr register
using namespace std;
vector<int>K[3]; int n,m0,m1,m2;
inline signed iut(){
rr int ans=0; rr char c=getchar();
while (!isdigit(c)) c=getchar();
while (isdigit(c)) ans=(ans<<3)+(ans<<1)+(c^48),c=getchar();
return ans;
}
signed main(){
n=iut();
for (rr int i=1;i<=n;++i){
rr int x=iut();
K[x%3].push_back(x);
}
m0=K[0].size(),m1=K[1].size(),m2=K[2].size();
if (m1&&m2){
if (m0>m1+m2+1||m0<1) return !printf("No\n");
printf("Yes\n");
for (rr int i=0;i<m1;++i){
if (m0>1) printf("%d ",K[0][m0-1]),--m0;
printf("%d ",K[1][i]);
}
printf("%d ",K[0][m0-1]),--m0;
for (rr int i=0;i<m2;++i){
printf("%d ",K[2][i]);
if (m0) printf("%d ",K[0][m0-1]),--m0;
}
return 0;
}
if (!m1&&!m2){
if (m0==1) return !printf("Yes\n%d",K[0][0]);
else return !printf("No\n");
}
if (m1){
if (m0>m1+1) return !printf("No\n");
printf("Yes\n");
for (rr int i=0;i<m1;++i){
if (m0) printf("%d ",K[0][m0-1]),--m0;
printf("%d ",K[1][i]);
}
if (m0) printf("%d ",K[0][m0-1]),--m0;
}
if (m2){
if (m0>m2+1) return !printf("No\n");
printf("Yes\n");
for (rr int i=0;i<m2;++i){
if (m0) printf("%d ",K[0][m0-1]),--m0;
printf("%d ",K[2][i]);
}
if (m0) printf("%d ",K[0][m0-1]),--m0;
}
return 0;
}

#构造#洛谷 6470 [COCI2008-2009#6]CUSKIJA的更多相关文章

  1. 洛谷P4312 [COCI 2009] OTOCI / 极地旅行社(link-cut-tree)

    题目描述 不久之前,Mirko建立了一个旅行社,名叫“极地之梦”.这家旅行社在北极附近购买了N座冰岛,并且提供观光服务. 当地最受欢迎的当然是帝企鹅了,这些小家伙经常成群结队的游走在各个冰岛之间.Mi ...

  2. [洛谷P4312][COCI 2009] OTOCI / 极地旅行社

    题目大意:有$n(n\leqslant3\times10^4)$个点,每个点有点权,$m(m\leqslant3\times10^5)$个操作,操作分三种: $bridge\;x\;y:$询问节点$x ...

  3. 洛谷 P2055 [ ZJOI 2009 ] 假期的宿舍 —— 二分图匹配

    题目:https://www.luogu.org/problemnew/show/P2055 二分图匹配: 注意要连边的话对方必须有床! 代码如下: #include<iostream> ...

  4. 洛谷 P1950 长方形_NOI导刊2009提高(2)

    传送门 思路 首先定义\(h\)数组,\(h[i][j]\)表示第\(i\)行第\(j\)列最多可以向上延伸多长(直到一个被用过的格子) 然后使用单调栈算出 \(l_i\)和 \(r_i\) ,分别是 ...

  5. 洛谷P1067 多项式输出 NOIP 2009 普及组 第一题

    洛谷P1067 多项式输出 NOIP 2009 普及组 第一题 题目描述 一元n次多项式可用如下的表达式表示: 输入输出格式 输入格式 输入共有 2 行 第一行 1 个整数,n,表示一元多项式的次数. ...

  6. 洛谷 P1494 BZOJ 2038 [2009国家集训队]小Z的袜子(hose)

    //洛谷题面字体.排版我向来喜欢,却还没收录这道如此有名的题,BZOJ的题面字体太那啥啦,清橙的题面有了缩进,小标题却和正文字体一致,找个好看的题面咋这么难呐………… //2019年3月23日23:0 ...

  7. [洛谷OJ] P1114 “非常男女”计划

    洛谷1114 “非常男女”计划 本题地址:http://www.luogu.org/problem/show?pid=1114 题目描述 近来,初一年的XXX小朋友致力于研究班上同学的配对问题(别想太 ...

  8. 洛谷P1126 机器人搬重物

    洛谷1126 机器人搬重物 题目描述 机器人移动学会(RMI)现在正尝试用机器人搬运物品.机器人的形状是一个直径1.6米的球.在试验阶段,机器人被用于在一个储藏室中搬运货物.储藏室是一个N*M的网格, ...

  9. 洛谷P1120 小木棍

    洛谷1120 小木棍 题目描述 乔治有一些同样长的小木棍,他把这些木棍随意砍成几段,直到每段的长都不超过50.     现在,他想把小木棍拼接成原来的样子,但是却忘记了自己开始时有多少根木棍和它们的长 ...

  10. 洛谷1439 排列LCS问题

    洛谷1439 排列LCS问题 本题地址:http://www.luogu.org/problem/show?pid=1439 题目描述 给出1-n的两个排列P1和P2,求它们的最长公共子序列. 输入输 ...

随机推荐

  1. 常用Windows控制台命令

    查看网络连接信息 1.查看所有网络连接 netstat -ano -a 显示所有连接和侦听端口. -n 以数字形式显示地址和端口号. -o 显示拥有的与每个连接关联的进程 ID. 详细的使用方式使用n ...

  2. 像闪电般击碎天空吧——快速轻量化模型之 SDXL-Lightning

    SDXL-Lightning 是一个由 ByteDance(字节跳动) 开发的文本到图像的生成模型,其主要贡献在于其高速的生成能力和轻量化的设计. 模型的特点 快速生成:SDXL-Lightning ...

  3. djang中orm使用iterator()

    当查询结果有很多对象时,QuerySet的缓存行为会导致使用大量内存.如果你需要对查询结果进行好几次循环,这种缓存是有意义的,但是对于 queryset 只循环一次的情况,缓存就没什么意义了.在这种情 ...

  4. 我的第一个项目(十五) :完成数据保存功能(后端,改update)

    好家伙,   代码已开源(Gitee) PH-planewar: 个人开发的全栈小游戏 前端:vue2 + element-ui 后端: Springboot + mybatis-plus 数据库: ...

  5. 【Azure K8S】记录AKS VMSS实例日志收集方式

    问题描述 如何从AKS的VMSS集群中收集实例日志? 参考步骤 第一步:登陆VMSS实例 参考官网步骤:使用 SSH 连接到 Azure Kubernetes 服务 (AKS) 群集节点以进行维护或故 ...

  6. 【Azure 应用服务】azure function powershell 调用 New-AzADServicePrincipal -DisplayName $sp -PasswordCredential $spCred

    问题描述 powershell 调用New-AzADServicePrincipal -DisplayName $sp -PasswordCredential $spCred,出现如下错误: Reso ...

  7. 面试必备:一线大厂Redis缓存设计规范与性能优化

    说在前面 你是否在使用Redis时,不清楚Redis应该遵循的设计规范而苦恼? 你是否在Redis出现性能问题时,不知道该如何优化而发愁? 你是否被面试官拷问过Redis的设计规范和性能优化而回答不出 ...

  8. UG474

    为了对工程的资源利用率进行优化,我们首先需要知道当前工程对资源的利用率情况.在Vivado下,我们可以查看工程的资源利用率情况,在下面这张图中,其罗列出了整个工程所使用的资源情况.首先,下面我们需要一 ...

  9. spring重点后置处理器

    1. DefaultListableBeanFactory的作用: 默认实现了ListableBeanFactory和BeanDefinitionRegistry接口,基于bean definitio ...

  10. 6、zookeeper应用场景-分布式唯一ID

    分布式唯一id案例 原理:使用zookeeper有序节点,节点后会加上有序的id,用这个id来当唯一ID 在过去的单库单表型系统中,通常第可以使用数据库字段自带的auto_ increment属性来自 ...