团子最大家族(clannad)
团子最大家族(clannad)
题目描述
bx2k有许多五颜六色的萌萌哒团子。每个团子有一种颜色。
他决定将m个团子排成一排。为了美观,他要求任何相邻的两个团子不能有相同的颜色。
因为bx2k很懒,因此他来寻求你的帮助。
输入
输入文件包含两行。
第一行为一个整数n,表示共有n种颜色的团子。
第二行为n个空格隔开的整数ai,表示颜色为i的团子有ai个。题目中的m=n∑i=1aim=∑i=1nai
输出
输出文件包含一行,m个空格隔开的整数,表示你给出的方案。如果有多种方案,输出任意一种即可。如果不存在合法方案,输出-1。
样例输入
样例输入1
3
2 3 3
样例输入2
1
2
样例输出
样例输出1
1 2 3 2 3 2 3 1
样例输出2
-1
提示
数据规模与约定
本题有10个测试点,每个测试点占10%的分数。
对于100%数据,时间限制为1s,空间限制为256MB。
对于20%的数据,n≤5,m≤10。
对于50%的数据,n≤1000,m≤1000。
另外20%的数据,n≤20,m≤100000。
对于100%的数据,1≤n≤100000,1≤m≤100000,1≤ai≤m。
来源
好水。。但我想了好久
只要把每一个扔进大跟堆里,每次取堆顶的两个,然后再放回
效率O(mlogn)
#include<cstdio>
#include<iostream>
#include<cstdlib>
#include<cstring>
#include<algorithm>
#include<cmath>
#include<queue>
#define maxn 100005
using namespace std;
int n,s[maxn],Max,ans[maxn],top,num;
struct node{
int num,co;
bool operator<(const node &T)const{
return T.num>num;
}
}t;
priority_queue<node>q;
int main(){
cin>>n;
for(int i=1;i<=n;i++){
scanf("%d",&s[i]);
Max=max(Max,s[i]);num+=s[i];
t.num=s[i];t.co=i;
q.push(t);
}
if(Max>num/2){puts("-1");return 0;}
while(!q.empty()){
node x=q.top();q.pop();
if(q.empty()){ans[++top]=x.co;break;}
node y=q.top();q.pop();
x.num--;y.num--;
if(ans[top]==x.co)ans[++top]=y.co,ans[++top]=x.co;
else ans[++top]=x.co,ans[++top]=y.co;
if(x.num)q.push(x);
if(y.num)q.push(y);
}
cout<<ans[1];
for(int i=2;i<=top;i++)printf(" %d",ans[i]);
cout<<endl;
return 0;
}
团子最大家族(clannad)的更多相关文章
- 基于英特尔® 至强™ 处理器 E5 产品家族的多节点分布式内存系统上的 Caffe* 培训
原文链接 深度神经网络 (DNN) 培训属于计算密集型项目,需要在现代计算平台上花费数日或数周的时间方可完成. 在最近的一篇文章<基于英特尔® 至强™ E5 产品家族的单节点 Caffe 评分和 ...
- 【6年开源路】FineUI家族今日全部更新(FineUI + FineUI3to4 + FineUI.Design + AppBox)!
刚才询问博客园团队: [6年开源路]三石今日送福利,AppBox4.0源码免费拿!FineUI家族今日全部更新(FineUI + FineUI3to4 + FineUI.Design + AppBox ...
- [Machine Learning & Algorithm]CAML机器学习系列1:深入浅出ML之Regression家族
声明:本博客整理自博友@zhouyong计算广告与机器学习-技术共享平台,尊重原创,欢迎感兴趣的博友查看原文. 符号定义 这里定义<深入浅出ML>系列中涉及到的公式符号,如无特殊说明,符号 ...
- 家族/亲戚(relation)
题目描述 若某个家族人员过于庞大,要判断两个是否是亲戚,确实还很不容易,现在给出某个亲戚关系图,求任意给出的两个人是否具有亲戚关系. 规定:x和y是亲戚,y和z是亲戚,那么x和z也是亲戚.如果x,y是 ...
- Hadoop家族的各个成员
官方定义:hadoop是一个开发和运行处理大规模数据的软件平台.核心词语是平台,也就是说我们有大量的数据,又有好几个电脑,我们知道应该把处理数据的任务分解到各个电脑上,但是不知道怎样分配任务,怎样回收 ...
- "流"派家族,一脉相承
(更多内容请关注本人微信订阅号:it_pupil) 你没进错,我们讲的是Java的输入输出流. 概述 ➤ 可以从其中读入一个字节序列的对象称作输入流.(输入流是一个对象,可以从这个对象中读取一个字 ...
- Hadoop学习笔记【Hadoop家族成员概述】
Hadoop家族成员概述 一.Hadoop简介 1.1 什么是Hadoop? Hadoop是一个分布式系统基础架构,由Apache基金会所开发,目前Yahoo!是其最重要的贡献者. Hadoop实现了 ...
- hadoop家族之pig入门
昨天成功运行第一个在hadoop集群上面的python版本的wordcount,今天白天继续看网上提供的文档.下午上头给定的回复是把hadoop家族都熟悉一下,那就恭敬不如从命,开始学习pig吧- 这 ...
- Hadoop家族 路线图(转)
主要介绍Hadoop家族产品,常用的项目包括Hadoop, Hive, Pig, HBase, Sqoop, Mahout, Zookeeper, Avro, Ambari, Chukwa,新增加的项 ...
随机推荐
- v4l2解析
v4l2的学习建议和流程解析: http://www.cnblogs.com/silence-hust/p/4464291.html 补充: 枚举设备所支持的image format: VIDIOC_ ...
- 认识mysql(3)
认识mysql第三篇,发出的内容适合初学者,如果能持续关注我的博客,可以全面的掌握mysql的常用知识,后续我也会陆续发出python相关的知识,关注我,和我一共进步吧! 1.SQL查询 1.执行顺序 ...
- python 使用requests 请求 https 接口 ,取消警告waring
response = requests.request("POST", url, timeout=20, data=payload, headers=headers, proxie ...
- windows 解决缺失.dll的问题
1.缺失MSVCR120.dell和MSVCP120.dll,如图: 这种问题是因为没有Microsoft Visual C++ 2013运行库的问题,自行百度在Microsoft官网下载即可,注意需 ...
- Kubernetes配置Ceph RBD StorageClass
1. 在Ceph上为Kubernetes创建一个存储池 # ceph osd pool create k8s 2. 创建k8s用户 # ceph auth get-or-create client.k ...
- Diycode开源项目 MyTopicActivity分析
1.总体浏览效果及布局分析 1.1.看一下我的帖子预览效果 1.2.然后看一下我的收藏预览效果 1.3.归纳一下 所以我的帖子和我的收藏可以共用同一个类. 布局效果几乎一样,只是用户的选择不同. 所以 ...
- 新手用WPF山寨QQ管家7.6(三)
由于一直忙工作,没有更新完博客,更可恨的是...在清理资料的时候不小心删除了之前自己做的各种效果的DEMO....好在项目中用到了大部分,也算有所保留,以后可不敢随便删东西了....太可怕了! 在 新 ...
- FreeMarker的基础语法使用 && 心得和技巧
FreeMarker语言 FreeMarker语言概述 FreeMarker是一个模板引擎,一个基于模板生成文本输出的通用工具,使用纯Java编写. FreeMarker被设计用来生成HTML Web ...
- day21&22&23:线程、进程、协程
1.程序工作原理 进程的限制:每一个时刻只能有一个线程来工作.多进程的优点:同时利用多个cpu,能够同时进行多个操作.缺点:对内存消耗比较高当进程数多于cpu数量的时候会导致不能被调用,进程不是越多越 ...
- SetUnhandledExceptionFilter
SetUnhandledExceptionFilter 设置未捕获异常处理 通常windows程序长时间运行,会发生各种问题,例如访问异常,内存溢出,堆栈破坏等. 这时候通常希望程序自己能增加处理,而 ...