YYHS-怎样更有力气
题目描述
长者回答:“你啊,Too Young Too Simple,Sometimes Naive!如果你想要我教你,你要先进行艰苦的修行。”
输入
输出
样例输入
2 5
4 8
9 10
样例输出
提示
测试点编号
|
n
|
m
|
x
|
1
|
n≤10
|
m≤1
|
|
2
|
n≤10
|
m≤10
|
|
3
|
n≤100
|
m≤100
|
|
4
|
n≤1000
|
m≤1000
|
|
5
|
n≤10000
|
m≤10000
|
|
6
|
n≤100000
|
m≤100000
|
x=0
|
7
|
n≤1018
|
||
8
|
n≤100000
|
|
|
9
|
n≤1018
|
||
10
|
题解
这道题首先是二分需要的天数
然后你需要统计出哪些区间没有被涂,然后用自己每天能涂的数量判断天数是否可以
但是自己刚开始被如何统计剩余区间给卡住了,后来才知道可以把记者涂的区间从小到大排序(双关键字),然后就是判断剩余区间了
当一段区间是4 5,后面一段是6 7的时候是没有区间漏涂的,所以判断q[i].l-q[i-1].r>1,但其实这样是不对的,自己就是被这个坑了
比如
3 7
4 5
7 8
如果判断q[i].l-q[i-1].r>1,就会以为6~7这段区间是没有被涂得,但是其实前面3 7已经涂到7了,是没有剩余的,所以就要统计之前的max{q[i].r},判断q[i].l-Max>1
统计完剩余区间后是计算自己涂的次数
这里要多判断一下x=0的情况,还有要考虑到x很大的情况,说不定能够涂到两块区间的情况
最后还要注意读入的n是10的18次,要long long读入
#include<bits/stdc++.h>
#define ll long long
#define M 100005
using namespace std;
ll n,m,k,num,ss;
int l,r,mid;
ll x[M],y[M];
bool Flag;
struct node{ ll x,y; }b[M],a[M],q[M];
bool cmp(node x,node y){
if (x.x!=y.x) return x.x<y.x;
else return x.y<y.y;
}
int main(){
scanf("%lld%lld%lld",&n,&m,&k);
for (int i=;i<=m;i++)
scanf("%lld%lld",&a[i].x,&a[i].y);
l=; r=m;
while (l<=r){
mid=(l+r)>>;
for (int i=;i<=mid;i++) b[i]=a[i];
sort(b+,b++mid,cmp);
int cnt=;
if (b[].x>) q[++cnt].x=,q[cnt].y=b[].x-;
ll Max=b[].y;
for (int i=;i<=mid;i++){
if (b[i].x-Max>) q[++cnt].x=Max+,q[cnt].y=b[i].x-;
if (b[i].y>Max) Max=b[i].y;
}
if (Max<n) q[++cnt].x=Max+,q[cnt].y=n;
bool flag=false;
num=; int p=;
ll last=,s;
if (!k){
if (cnt>) flag=true;
} else
while (p<=cnt){
if (q[p].x<=last&&q[p].y>last) q[p].x=last+; else
if (q[p].y<=last){
p++; continue;
}
s=(q[p].y-q[p].x)/k+;
num=num+s;
if (num>mid){
flag=true; break;
}
last=q[p].x+s*k-;
p++;
}
if (flag) l=mid+; else{
Flag=true;
ss=mid;
r=mid-;
}
}
if (!Flag) puts("Poor Douer!");
else printf("%d\n",ss);
return ;
}
YYHS-怎样更有力气的更多相关文章
- UOJ#61. 【UR #5】怎样更有力气
大力水手问禅师:“大师,很多事情都需要用很大力气才能完成,而我在吃了菠菜之后力气很大,于是就导致我现在非常依赖菠菜.我很讨厌我的现状,有没有办法少吃点菠菜甚至不吃菠菜却仍很有力气?” 禅师浅笑,答:“ ...
- 【NOIP2017练习】怎样更有力气(二分答案,线性扫描)
题意:OI大师抖儿在夺得银牌之后,顺利保送pku.这一天,抖儿问长者:“我虽然已经保送了,但我的志向是为国家健康工作五十年.请问我应该怎样变得更有力气?” 长者回答:“你啊,Too Young T ...
- 【UOJ#61】【UR #5】怎样更有力气(最小生成树)
[UOJ#61][UR #5]怎样更有力气(最小生成树) 题面 UOJ 题解 最最最暴力的想法是把所有边给处理出来然后跑\(MST\). 考虑边权的情况,显然离线考虑,把么一天按照\(w_i\)进行排 ...
- 「UR#5」怎样更有力气
「UR#5」怎样更有力气 解题思路 考虑没有限制的情况,一定是把操作离线下来,按照边权从小到达做.可以发现,如果没有限制,完全图是多余的,直接拿树边进行合并就可以了.我们要做这么一件事情,把每个点属于 ...
- 【UR #5】怎样更有力气
Problem Description 大力水手问禅师:"大师,很多事情都需要用很大力气才能完成,而我在吃了菠菜之后力气很大,于是就导致我现在非常依赖菠菜.我很讨厌我的现状,有没有办法少吃点 ...
- [UOJ61]怎样更有力气
这个题还是挺有意思的... 一个小结论是:在一个$n$点$m$边的图中,如果度数最小的点度数为$d$,那么$d^2=O(m)$,因为$d\leq\frac{2m}n$,所以$d^2\leq dn\le ...
- UOJ61. 【UR #5】怎样更有力气
题目链接 Statement 给定一棵 \(n\) 点树 \(T\) 和 \(m\) 个操作 v u w : 在 \(T\) 中 \(u,v\) 的最短路上所有点里面选出若干对(可以不选,可以重复), ...
- 校际联合Contest
每次开一个坑都像是重新被碾压的预感 最近的新闻,以前很喜欢乔任梁的<复活>...然后他就死了...感觉我再多愁善感一点的话...就要悲伤逆流成河了吧... Contest 09/24(乐滋 ...
- 如何编写高质量的 jQuery 代码?
想必大家对于jQuery这个最流行的javascript类库都不陌生,而且只要是前端开发人员肯定或多或少的使用或者接触过,在今天的这篇文章中,我们将介绍一些书写高质量jQuery代码的原则,我们不单单 ...
随机推荐
- Abp(.NetCore)开发与发布过程3-部署Ubuntu站点
以下是笔者在 Ubuntu 16.0-64bit 环境下 发布 ABP(.NetCore)的全过程.特此记录,希望对大家有所帮助. 准备的工具 1.PuTTY(ssh,如果不想每次都用阿里云的远程登录 ...
- null == undefined ?
最近在看<JavaScript高级程序设计>一书,书中讲到相等操作符(==)时说,要比较相等性之前,不能将 null 和 undefined 转换成其他任何值,但要记住 null == u ...
- css2--背景
## CSS2 背景##### background-color 设置背景颜色 ##### background-image 设置背景图片- ````background-image:url(&quo ...
- Python 3.X安装配置
0x01 安装Python 目前,Python有两个版本,一个是2.x版,一个是3.x版,这两个版本是不兼容的. 本教程安装的是python-3.6.1-amd64版本. Python官网:https ...
- Hadoop分布式集群搭建hadoop2.6+Ubuntu16.04
前段时间搭建Hadoop分布式集群,踩了不少坑,网上很多资料都写得不够详细,对于新手来说搭建起来会遇到很多问题.以下是自己根据搭建Hadoop分布式集群的经验希望给新手一些帮助.当然,建议先把HDFS ...
- 优先级队列Priority_queue
定义 拥有权值观点的queue,,一个是返回最高优先级对象,一个是在底端添加新的对象.这种数据结构就是优先级队列(Priority Queue) . 实现 利用max_heap完成,以vector表现 ...
- JMeter脚本录制
1.1. 使用第三方录制方式或代理录制方式(建议) 第三方采用:http://www.badboy.com.au/ 通过badboy来录制,录制后另存为jmx格式即可. 操作步骤: a.打开badb ...
- windows下tomcat zip解压版安装方法
下面记录一下在win7(32位)系统下,安装zip解压版的方法: 一.下载zip压缩包 地址:http://tomcat.apache.org/download-80.cgi 二.解压 我把解压包解压 ...
- Java 环境设置
Java 环境设置 本地环境设置 如果你依然想要为 Java 编程语言设置环境,那么本节将指导你如何在你的电脑上下载和设置 Java.请按照以下步骤进行环境设置. Java SE 可以从下载 Java ...
- 汉化Eclipse
汉化Eclipse.. ----------------- /--------------------------------link连接: 将下载的语言包解压后会有eclipse文件夹,eclips ...