#构造#洛谷 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,求它们的最长公共子序列. 输入输 ...
随机推荐
- 利用wiile双层循环打印各种星星---day06
# 十行十列小星星 j = 0 #定义行数 while j<10: #当行数小于10的时候 i=0 #定义列 while i <10: #当列小于10的时候 print('*',end=' ...
- 【Azure App Service for Container】记一次拉取镜像失败的特殊情况
问题描述 使用Azure App Service For Container 拉取 应用镜像,发现拉取失败. 错误消息: "Image pull failed since Inspect i ...
- 【Azure 环境】中国区Azure B2C 是否支持手机验证码登录呢?
问题描述 中国区Azure B2C 是否支持手机验证码登录呢? 问题回答 在没有原生 Phone sign-up and sign-in for user flows (中国区不支持,Global A ...
- Java 多线程------例子(1) --创建 三个窗口 买票 总票数为 100张 使用继承Thread类的方式
1 package com.bytezero.threadexer; 2 3 4 5 /** 6 * 7 * 创建 三个窗口 买票 总票数为 100张 使用继承Thread类的方式 8 * @auth ...
- SQLmap 爆破
1.Sqlmap -u "http://114.67.246.176:11055/index.php?" --data="id=1" (这里 --dat ...
- 通过debug搞清楚.vue文件怎么变成.js文件
前言 我们每天写的vue代码都是写在vue文件中,但是浏览器却只认识html.css.js等文件类型.所以这个时候就需要一个工具将vue文件转换为浏览器能够认识的js文件,想必你第一时间就想到了web ...
- [.Net]使用Soa库+Abp搭建微服务项目框架(二):面向服务体系的介绍
上一章我们建立了一个典型的面向领域设计的Abp小项目,如果按照常规的开发方式,会遇到什么问题呢? 先来完善一下这个小项目,在定义好各实体类后,运行Miguration并向数据库里写入一些初始数据. ...
- Template String Converter - 字符串中加变量 自动将单引号变换 - vscode插件
Template String Converter - 字符串中加变量 自动将单引号变换 - vscode插件
- 音标 舌侧音 /l/ 的发音 - 英语
音标 舌侧音 /l/ 的发音 这个音标 首先确定下 就是一个音 发 了(注意 发音方式不是中文的了,是英文的了) 注意发音方式很重要 中文 '了',重点在 偏鼻音(发射方向为前上方) 英文 '了',重 ...
- 使用pymysql库,将tushare股票信息保存入本地MySQL数据库
使用pymysql库,将tushare股票信息保存入本地MySQL数据库 1.前言 由于tushare存在积分权限限制,高频读取tushare数据容易挤占服务器带宽,因此对于常用的tushare数据, ...