暑期集训=依托答辩。

分析

种类数是奇数一定无解。

否则每种数字先输出一次,在此过程中每增加两个数时,因为每个数字种类数都不一样,所以前缀种类数也同时增加 \(2\),保证一定为偶数。

然后输出完以后,设总种类数为 \(m\),无论以后再怎么加入新数字,前缀种类数一定为 \(m\) 不变,后面数字依次输出就行了。

Code

#include<bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
#include<ext/pb_ds/hash_policy.hpp>
#include<ext/pb_ds/trie_policy.hpp>
#include<ext/pb_ds/priority_queue.hpp>
#define int long long
#define V vector<char>
using namespace std;
using namespace __gnu_pbds;
//gp_hash_table<string,int>mp2;
//__gnu_pbds::priority_queue<int,less<int>,pairing_heap_tag> q;
inline int read()
{
int w=1,s=0;char ch=getchar();
while(!isdigit(ch)){if(ch=='-')w=-1;ch=getchar();}
while(isdigit(ch)){s=s*10+(ch-'0');ch=getchar();}
return w*s;
}
const int mod=998244353;
const int maxn=1e6+10;
int n,a[maxn];
int cnt[maxn];
vector<int> v;
signed main()
{
cin>>n;
for(int i=1;i<=n;i++)a[i]=read();
sort(a+1,a+n+1);
for(int i=1;i<=n;i++)
{
if(!cnt[a[i]])v.push_back(a[i]);
cnt[a[i]]++;
}
if(v.size()&1)return 0*printf("-1");
for(auto i : v)
{
cout<<i<<' ';
cnt[i]--;
}
for(int i=1;i<=n;i++)
{
for(int j=1;j<=cnt[a[i]];j++)
{
cout<<a[i]<<' ';
}
cnt[a[i]]=0;
}
return 0;
}

题解:P10672 【MX-S1-T1】壁垒的更多相关文章

  1. TJOI2015题解

    (转载前请标明出处,谢谢) 打算来做一波TJOI2015,来写题解啦! Day1: T1:[bzoj3996] 题目链接:http://www.lydsy.com/JudgeOnline/proble ...

  2. PAT 甲级真题题解(63-120)

    2019/4/3 1063 Set Similarity n个序列分别先放进集合里去重.在询问的时候,遍历A集合中每个数,判断下该数在B集合中是否存在,统计存在个数(分子),分母就是两个集合大小减去分 ...

  3. OJ题解记录计划

    容错声明: ①题目选自https://acm.ecnu.edu.cn/,不再检查题目删改情况 ②所有代码仅代表个人AC提交,不保证解法无误 E0001  A+B Problem First AC: 2 ...

  4. 51nod图论题解(4级,5级算法题)

    51nod图论题解(4级,5级算法题) 1805 小树 基准时间限制:1.5 秒 空间限制:131072 KB 分值: 80 难度:5级算法题 她发现她的树的点上都有一个标号(从1到n),这些树都在空 ...

  5. Codeforces Round #519 题解

    A. Elections 题意概述 给出 \(a_1, \ldots, a_n\),求最小的 \(k (k \ge \max a_i)\), 使得 \(\sum_{i=1}^n a_i < \s ...

  6. [题解] [NOIP2008] 双栈排序——关系的冲突至图论解法

    Problem 题目描述 Tom最近在研究一个有趣的排序问题.如图所示,通过2个栈S1和S2,Tom希望借助以下4种操作实现将输入序列升序排序. 操作a 如果输入序列不为空,将第一个元素压入栈S1 操 ...

  7. CF543B Destroying Roads 题解

    看到没有题解就贡献一波呗 分析: 这题其实就是想让我们求一个图中两条最短路的最短(好把更多的边删掉). 我们先考虑一条最短路,别问我我怎么会的显然,就是s和t跑个最短路再用n-就行. 然后就是两条喽! ...

  8. 【题解】Norma [COCI2014] [SP22343]

    [题解]Norma [COCI2014] [SP22343] 传送门:\(\text{Norma [COCI2014]}\) \(\text{[SP22343]}\) [题目描述] 给定一个整数 \( ...

  9. Nowcoder | [题解-N210]牛客OI月赛2-提高组

    比赛连接戳这里^_^ 我才不会说这是我出的题(逃) 周赛题解\((2018.10.14)\) \(T1\) \(25\sim50\)分做法\(:\)直接爆搜 作为一个良心仁慈又可爱的出题人当然\(T1 ...

  10. [HNOI2002]沙漠寻宝 题解

    一道大模拟 代码 #include <cstdio> #include <iostream> #include <cstring> #include <str ...

随机推荐

  1. 《最新出炉》系列入门篇-Python+Playwright自动化测试-47-自动滚动到元素出现的位置

    1.简介 在我们日常工作中或者生活中,经常会遇到我们的页面内容较多,一个屏幕范围无法完整展示内容,我们就需要滚动滚动条去到我们想要的地方,如下图页面,我们虽然在豆瓣首页,但是内容并不完整,如果我们想要 ...

  2. 珠排序算法C# 简单实现 奇葩排序中的算盘排序(算珠排序)算法

    Console.WriteLine("Hello World!"); int[] arr = { 1, 3, 4, 0, 22, 4,0, 6, 3,10,8,6,7 }; Con ...

  3. 【C# wpf】个人网盘练习项目总结

    采用 .net frameowrok 4.5.2 未写持久层代码,不可保存运行时的数据状态.分服务端,客户端,采用tcp通讯,使用了supersocket组件.服务端用winform ,客户端用wpf ...

  4. WPF开发快速入门【5】DataGrid的使用

    概述 DataGrid是最常用的一种列表数据展现控件,本文介绍DataGrid的一些常用操作,包括:展示.新增.删除.修改等.以下代码基于Stylet框架实现. 数据展示 DataGrid用于对象列表 ...

  5. Flutter TextField开始输入中文的时候,被打断导致错误输入字母问题

    一.Bug样例 建立一个web demo flutter run -d chrome --web-renderer html 出现问题: 输入中文的时候,比如打字 hao, 第一个字母h会先输入,变成 ...

  6. redhat8 添加scsi类型的硬盘后开机重配虚拟机 且黑屏

    原因:因为vmware磁盘优先级里nvme类型的磁盘比scsi类型的磁盘优先级高,所以开机先启动scsi类型的磁盘 又因为scsi并不是系统盘所以不能够实现开机 解决方法: 改变vmware的磁盘优先 ...

  7. kettle从入门到精通 第十八课 kettle Metadata Injection

    1.Metadata Injection 类似于java里面的模版,设置通用的模版,通过输入不同的数据,得到不同的结果.本示例演示两个字段拼接成一个新字段. 2.设置模版,设置模版时,只需要根据自己的 ...

  8. 西数 WD SATA SSD 固态 蓝盘 复制和剪切速度慢

    现象:速度只有4,5M,活动时间100%.用AS SSD 测试速度正常. 问题:冷数据掉速.冷数据门. 解决方法:用DiskFresh,刷新下. 刷新时间,要看你存储数据的多少.我的1T 蓝盘,用了3 ...

  9. 硬件开发笔记(十九):Altium Designer 21软件介绍和安装过程

    前言   AD硬件设计软件之一,前面说了allego,但是allego对项目的管理.原理图生成PCB,PCB反向原理图等方面比较复杂,对于一般的硬件(非多个高速电路),选择AD能够加大的节省开发工作量 ...

  10. CodeForces 1935A

    题目链接:Entertainment in MAC 思路 当当前操作次数n为偶数时,若原字符串大于反转字符串则可以将原字符串反转n - 2次,则得到的还是原字符串,此时反转一次,并将其再次反转的字符串 ...