#构造#洛谷 6470 [COCI2008-2009#6]CUSKIJA
题目
给定一个长度为 \(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的更多相关文章
- 洛谷P4312 [COCI 2009] OTOCI / 极地旅行社(link-cut-tree)
题目描述 不久之前,Mirko建立了一个旅行社,名叫“极地之梦”.这家旅行社在北极附近购买了N座冰岛,并且提供观光服务. 当地最受欢迎的当然是帝企鹅了,这些小家伙经常成群结队的游走在各个冰岛之间.Mi ...
- [洛谷P4312][COCI 2009] OTOCI / 极地旅行社
题目大意:有$n(n\leqslant3\times10^4)$个点,每个点有点权,$m(m\leqslant3\times10^5)$个操作,操作分三种: $bridge\;x\;y:$询问节点$x ...
- 洛谷 P2055 [ ZJOI 2009 ] 假期的宿舍 —— 二分图匹配
题目:https://www.luogu.org/problemnew/show/P2055 二分图匹配: 注意要连边的话对方必须有床! 代码如下: #include<iostream> ...
- 洛谷 P1950 长方形_NOI导刊2009提高(2)
传送门 思路 首先定义\(h\)数组,\(h[i][j]\)表示第\(i\)行第\(j\)列最多可以向上延伸多长(直到一个被用过的格子) 然后使用单调栈算出 \(l_i\)和 \(r_i\) ,分别是 ...
- 洛谷P1067 多项式输出 NOIP 2009 普及组 第一题
洛谷P1067 多项式输出 NOIP 2009 普及组 第一题 题目描述 一元n次多项式可用如下的表达式表示: 输入输出格式 输入格式 输入共有 2 行 第一行 1 个整数,n,表示一元多项式的次数. ...
- 洛谷 P1494 BZOJ 2038 [2009国家集训队]小Z的袜子(hose)
//洛谷题面字体.排版我向来喜欢,却还没收录这道如此有名的题,BZOJ的题面字体太那啥啦,清橙的题面有了缩进,小标题却和正文字体一致,找个好看的题面咋这么难呐………… //2019年3月23日23:0 ...
- [洛谷OJ] P1114 “非常男女”计划
洛谷1114 “非常男女”计划 本题地址:http://www.luogu.org/problem/show?pid=1114 题目描述 近来,初一年的XXX小朋友致力于研究班上同学的配对问题(别想太 ...
- 洛谷P1126 机器人搬重物
洛谷1126 机器人搬重物 题目描述 机器人移动学会(RMI)现在正尝试用机器人搬运物品.机器人的形状是一个直径1.6米的球.在试验阶段,机器人被用于在一个储藏室中搬运货物.储藏室是一个N*M的网格, ...
- 洛谷P1120 小木棍
洛谷1120 小木棍 题目描述 乔治有一些同样长的小木棍,他把这些木棍随意砍成几段,直到每段的长都不超过50. 现在,他想把小木棍拼接成原来的样子,但是却忘记了自己开始时有多少根木棍和它们的长 ...
- 洛谷1439 排列LCS问题
洛谷1439 排列LCS问题 本题地址:http://www.luogu.org/problem/show?pid=1439 题目描述 给出1-n的两个排列P1和P2,求它们的最长公共子序列. 输入输 ...
随机推荐
- 第140篇:微信小程序的登录流程
好家伙,补补补 顶不住了,跑不掉了,这部分的知识还是要补上 来看看微信小程序登录的完整流程 最左边的一列就是前端负责的部分了 几个关键的参数: code:一个用户登录凭证,就是一个临时的t ...
- 【Azure 应用服务】Azure Function (PowerShell) 执行时报错 "out of memory"
问题描述 在Azure Function App服务中,创建一个PowerShell脚本的函数,遇见了OOM(Out Of Memory)的异常报错: 2022-01-10T07:44:37 Welc ...
- 【Azure Function】调试 VS Code Javascript Function本地不能运行,报错 Value cannot be null. (Parameter 'provider')问题
问题描述 参考官方文档,通过CS Code创建JavaScription Function,在本地远行时候出现: Value cannot be null. (Parameter 'provider' ...
- 使用debezium实现cdc实时数据同步功能记录
Debezium 是一个用于变更数据捕获的开源分布式平台.能够保证应用程序就可以开始响应其他应用程序提交到您数据库的所有插入.更新和删除操作.Debezium 持久.快速,因此即使出现问题,您的应用程 ...
- 好用网址分享-77ai导航与77搜索导航
AI(人工智能)技术正在改变我们的生活方式和工作方式,越来越多的人开始关注和使用AI相关的网站和应用程序.在这篇文章中,我将为大家介绍一些常用的AI网址导航,帮助您更好地了解和使用AI技术. AI H ...
- golang开发:环境篇(三)开发利器Goland安装
这节主要介绍下golang开发的最主要的IDE,Goland.可以有效提高开发效率.用过一段时间 IntelliJ+GO插件,其实功能上跟goland差不多.不过团队的其它开发者基本都是Goland, ...
- CSAPP:lab7 shell
实验网站 课程网站:CSAPP 源码下载 源码下载 实验文档下载 我的实验环境:Ubuntu 20.04 lab7文档解读 查看 tsh.c (tiny shell) 文件,您会看到它包含一个简单 ...
- Chrome Audio Capture - 录音插件 功能很简单,就是点击录音 文本转语音用
Chrome Audio Capture - 录音插件 功能很简单,就是点击录音 文本转语音用
- obsidian 日记本倒序汇总 获取标题显示 插件dataviewjs list
obsidian 日记本倒序汇总 获取标题显示 插件dataviewjs list // dataviewjs function removeDuplicate(arr) { return arr.f ...
- 用于演示文稿的新 Dapr 幻灯片
Dapr 官方博客上(https://blog.dapr.io/posts/2024/03/10/new-dapr-slide-deck-for-your-presentations/)发布了一个新的 ...