CF720A Closing ceremony 贪心
正解:贪心
解题报告:
先考虑如果只有一列怎么搞?那就肯定是尽量走到最远的地方
然后用点儿类似的思想,现在考虑有两列的情况QAQ
为了方便表述,这里给每个位置两个值,a表示离一号入口的距离,b表示离二号入口的距离
可以先把从一号入口进去的安排了,所以考虑按体力从小往大考虑,然后在能满足a的情况下尽量选b比较大的位置
然后再处理二号入口的,就按体力从大往小考虑一下就好
具体实现的话就先把所有坐标按a排序,然后满足的就加入堆,堆的内部按b排序就好
over
#include<bits/stdc++.h>
using namespace std;
#define il inline
#define gc getchar()
#define ri register int
#define rc register char
#define rb register bool
#define rp(i,x,y) for(ri i=x;i<=y;++i)
#define my(i,x,y) for(ri i=x;i>=y;--i) const int N=+;
int n,m,k,a[N],nw=,nod_cnt;
struct node{int x,y,disa,disb;}nod[N];
il bool operator < (node gd,node gs){return gd.disb<gs.disb;}
priority_queue<node>Q; il int read()
{
rc ch=gc;ri x=;rb y=;
while(ch!='-' && (ch>'' || ch<''))ch=gc;
if(ch=='-')ch=gc,y=;
while(ch>='' && ch<='')x=(x<<)+(x<<)+(ch^''),ch=gc;
return y?x:-x;
}
il bool cmp(node gd,node gs){return gd.disa<gs.disa;}
il bool cmq(ri gd,ri gs){return gd>gs;} int main()
{
// freopen("720a.in","r",stdin);freopen("720a.out","w",stdout);
n=read();m=read();rp(i,,n)rp(j,,m)nod[++nod_cnt]=(node){i,j,i+j,i+m+-j};sort(nod+,nod++nod_cnt,cmp);
k=read();rp(i,,k)a[i]=read();sort(a+,a++k);
rp(i,,k){while(a[i]>=nod[nw].disa && nw<=nod_cnt)Q.push(nod[nw++]);if(Q.empty())return printf("NO\n"),;Q.pop();}
while(nw<=nod_cnt)Q.push(nod[nw++]);
k=read();rp(i,,k)a[i]=read();sort(a+,a++k);
// printf("nmdwsm??? %d\n",Q.size());
// while(!Q.empty())printf("%d\n",Q.top().disb),Q.pop();
my(i,k,){if(a[i]<Q.top().disb)return printf("NO\n"),;Q.pop();}//printf("dis=%d\n",Q.top().disb);}
printf("YES\n");
return ;
}
然后这儿是代码QwQ!
CF720A Closing ceremony 贪心的更多相关文章
- 题解 [CF720A] Closing ceremony
题面 解析 首先贪心地想一想, 一个人我们肯定让她坐得尽量远, 那到底坐到哪里呢? 考虑先让下面的人先坐, 那他们就要尽量把离上面入口远的位置坐掉, 因此把位置按离上面的距离从大到小排序, 再一个个看 ...
- Codeforces 720A. Closing ceremony
A. Closing ceremony time limit per test 2 seconds memory limit per test 256 megabytes The closing ce ...
- codeforces 720A:Closing ceremony
Description The closing ceremony of Squanch Code Cup is held in the big hall with n × m seats, arran ...
- 退役前的最后的做题记录upd:2019.04.04
考试考到自闭,每天被吊打. 还有几天可能就要AFO了呢... Luogu3602:Koishi Loves Segments 从左向右,每次删除右端点最大的即可. [HEOI2014]南园满地堆轻絮 ...
- Lunch War with the Donkey CSU - 2084
Jingze is a big figure in California State University for his stubbornness. Because of his new failu ...
- 2018SDIBT_国庆个人第二场
A.codeforces1038A You are given a string ss of length nn, which consists only of the first kk letter ...
- DP:0
小故事: A * "1+1+1+1+1+1+1+1 =?" * A : "上面等式的值是多少" B : *计算* "8!" A *在上面等式 ...
- 贪心 Gym 100502E Opening Ceremony
题目传送门 /* 题意:有一堆砖块,每一次操作可以选择消去任意一行,也可以选择消去任意一列.求要消去所有的砖块需要最小的操作数 贪心:首先清楚的是消去最高列的最佳,消去第一行最佳,行列的顺序只对中间过 ...
- Opening Ceremony(贪心)
Problem E: Opening Ceremony Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 137 Solved: 30[Submit][S ...
随机推荐
- Java知多少(9) import及Java类的搜索路径
如果你希望使用Java包中的类,就必须先使用import语句导入. import语句与C语言中的 #include 有些类似,语法为: import package1[.package2…].c ...
- Java知多少(42)泛型通配符和类型参数的范围
本节先讲解如何限制类型参数的范围,再讲解通配符(?). 类型参数的范围 在泛型中,如果不对类型参数加以限制,它就可以接受任意的数据类型,只要它是被定义过的.但是,很多时候我们只需要一部分数据类型就够了 ...
- Java注解小记
java注解是jdk1.5以后新出的特性,注解提升了Java语言的表达能力,有效地实现了应用功能和底层功能的分离,框架/库的程序员可以专注于底层实现. 1.Java内置注解 主要有三个: @Overr ...
- Debian root登录设置
修改gdm3的登录pam文件 #vi /etc/pam.d/gdm3 将auth required pam_succeed_if.so user != root quiet_success注释掉 // ...
- kafka消费数据策略
单线程消费 以之前生产者中的代码为例,事先准备好了一个 Topic:data-push,3个分区. 先往里边发送 100 条消息,没有自定义路由策略,所以消息会均匀的发往三个分区. 先来谈谈最简单的单 ...
- Oracle 11g:bin目录下3个特效权限的文件:root用户所有者 + s权限
- MySql 5.7 新特性概览
安全的提升 1.1 在Mysql 8版本中,caching_sha2_password 是一个缺省的认证插见.5.7 版本的客户端支持 caching_sha2_password 的客户端认证. 1. ...
- Docker集群管理portainer的使用
1.Slave主机docker需要开启2375端口 ubuntu: sudo vim /etc/default/docker DOCKER_OPTS="-H=unix:///var/run/ ...
- QT textBrowser 使用
使用环境: VS2010 & QT Designer5 1. 在QT Designer 拖入 textBrowser,点击右键属性获得 name值 2. 在程序使用的地方 加入 ui.te ...
- wpgcms---导航高亮显示
在使用wpgcms做项目的时候,有时候三级栏目默认是没有高亮显示的一级导航的,例如:文章详情页要对应的文章栏目进行高亮显示,三级单篇页要对应栏目是高亮显示.具体做法是: 首先看获取导航的方式: {% ...