CoderForce 141C-Queue (贪心+构造)
题目大意:一个队伍,每个人只记得前面比他高的人的个数x。现在将队伍散开,问能否构造出一支满足条件的队伍,如果能,再给每个人一个满足题意的身高。
题目分析:一个一个排,x越少越先排,如果x比已经排好的人数大,那么无解。否则,将这个人放到已经排好的队伍中的第x+1个位置上去,并赋予一个合适的身高,使得前x个人都比他高。
代码如下:
# include<iostream>
# include<cstdio>
# include<queue>
# include<string>
# include<algorithm>
using namespace std; struct People
{
string name;
int num;
People(string p,int a):name(p),num(a){}
bool operator < (const People &a) const{
return num<a.num;
}
};
int n;
vector<People>v,ans; bool ok()
{
ans.clear();
sort(v.begin(),v.end());
for(int i=0;i<n;++i){
if(v[i].num>i) return false;
int k=v[i].num;
if(k==0){
ans.insert(ans.begin(),People(v[i].name,50001));
continue;
}
int minn=ans[0].num;
for(int j=1;j<k;++j) minn=min(ans[j].num,minn);
ans.insert(ans.begin()+k,People(v[i].name,minn-1));
}
return true;
} int main()
{
string p;
int a;
while(~scanf("%d",&n))
{
v.clear();
for(int i=0;i<n;++i){
cin>>p>>a;
v.push_back(People(p,a));
}
if(!ok()) printf("-1\n");
else{
for(int i=0;i<ans.size();++i)
cout<<ans[i].name<<' '<<ans[i].num<<endl;
}
}
return 0;
}
CoderForce 141C-Queue (贪心+构造)的更多相关文章
- 贪心+构造 Codeforces Round #277 (Div. 2) C. Palindrome Transformation
题目传送门 /* 贪心+构造:因为是对称的,可以全都左一半考虑,过程很简单,但是能想到就很难了 */ /************************************************ ...
- 贪心/构造/DP 杂题选做
本博客将会收录一些贪心/构造的我认为较有价值的题目,这样可以有效的避免日后碰到 P7115 或者 P7915 这样的题就束手无策进而垫底的情况/dk 某些题目虽然跟贪心关系不大,但是在 CF 上有个 ...
- 贪心/构造/DP 杂题选做Ⅱ
由于换了台电脑,而我的贪心 & 构造能力依然很拉跨,所以决定再开一个坑( 前传: 贪心/构造/DP 杂题选做 u1s1 我预感还有Ⅲ(欸,这不是我在多项式Ⅱ中说过的原话吗) 24. P5912 ...
- 贪心/构造/DP 杂题选做Ⅲ
颓!颓!颓!(bushi 前传: 贪心/构造/DP 杂题选做 贪心/构造/DP 杂题选做Ⅱ 51. CF758E Broken Tree 讲个笑话,这道题是 11.3 模拟赛的 T2,模拟赛里那道题的 ...
- CodeForces 141C Queue (构造)
题意:n 个人在排队,然后给出每个人的前面比他身高高的人的数量hi,让你给出一种排列,并给出一种解. 析:首先,hi 小的要在前面,所以先进行排序,然后第一个人的 h1 必须为0,我们可以令身高为 1 ...
- hdu 4982 贪心构造序列
http://acm.hdu.edu.cn/showproblem.php?pid=4982 给定n和k,求一个包含k个不相同正整数的集合,要求元素之和为n,并且其中k-1的元素的和为完全平方数 枚举 ...
- Codeforces Round #335 (Div. 2) D. Lazy Student 贪心+构造
题目链接: http://codeforces.com/contest/606/problem/D D. Lazy Student time limit per test2 secondsmemory ...
- Codeforces Round #301 (Div. 2)(A,【模拟】B,【贪心构造】C,【DFS】)
A. Combination Lock time limit per test:2 seconds memory limit per test:256 megabytes input:standard ...
- Codeforces 1082D Maximum Diameter Graph (贪心构造)
<题目链接> 题目大意:给你一些点的最大度数,让你构造一张图,使得该图的直径最长,输出对应直径以及所有的边. 解题分析:一道比较暴力的构造题,首先,我们贪心的想,要使图的直径最长,肯定是尽 ...
随机推荐
- SQL 报表 --简易进销系统
模型图: -- ============================================ -- Author: lifu -- Create Date: 2017-06-18 -- D ...
- PHP发送HTTP请求的6种方法
方法1: 用 file_get_contents 以get方式获取内容: <?php$url = 'https://wenda.shukaiming.com/';echo file_get_co ...
- linux下连接无线网出现nl80211: Could not configure driver mode nl80211: deinit ifname=wlan1 disabled_11b_rates=0 wlan1: Failed to initialize driver interface
一.背景1.1 jello@jello:~$ lsb_release -aNo LSB modules are available.Distributor ID: UbuntuDescripti ...
- 第十四章 数字签名算法--RSA
注意:本节内容主要参考自 <Java加密与解密的艺术(第2版)>第9章“带密钥的消息摘要算法--数字签名算法” <大型分布式网站架构(设计与实践)>第3章“互联网安全架构” 1 ...
- [SpringMVC] - 简单说明什么是SpringMVC
M 代表 模型(Model)V 代表 视图(View) C 代表 控制器(controller) 模型是什么呢? 模型就是数据,就是dao,bean 视图是什么呢? 就是网页, JSP,用来展示模型中 ...
- Unity3D学习笔记(四):物理系统碰撞和预制体
Rigidbody(刚体组件):加了此组件游戏物体就变成刚体了 ----Mass(质量,单位kg):重力G = 质量m * 重力加速度g(g=9.81 m/s^2) --------冲量守恒定理 动量 ...
- 《重构网络:SDN架构与实现》Chapter7 SDN与网络虚拟化 随笔
参考: <重构网络:SDN架构与实现>,作者:杨泽卫.李呈. Chapter7 SDN与网络虚拟化 结构 7.1 网络虚拟化 7.1.1 为什么需要网络虚拟化技术 7.1.2 网络虚拟化 ...
- 【异常记录(九)】 System.Threading.ThreadAbortException: 正在中止线程
报错如下: System.Threading.ThreadAbortException: Thread was being aborted. at System.Threading.Thread.Ab ...
- Springboot 学习笔记 之 Day 1
SpringBoot快速入门 https://spring.io/ 1. SpringBoot简介Spring Boot来简化Spring应用开发,约定大于配置,去繁从简,just run就能创建一个 ...
- SQL实现新增表,表名更改,列名更改,约束更改等
--新建表: CREATE TABLE TABLENAME ( ID INT IDENTITY (1,1) PRIMARY KEY , NAME VARCHAR(50) DEFAULT 'HELLO' ...