【JZOJ5329】-时间机器
【JZOJ5264】化学
Description
Input
Output
Sample Input
3 10
1 2 10
Sample Output
5
Hint
题解:
这个题目又是一道贪心题,我们考虑将区间当成区间上的点(l对应x,r对应y),所以我们对于每种点,我们要寻找的点为于以当前这个点为原点的左上项限上,所在我们将两种点按照x来排序,每次一个一处理,每次取左上方项限中y最小的点就可以multset维护一下就可以了.
代码:
#include <cstdio>
#include <iostream>
#include <algorithm>
#include <cstring>
#include <cmath>
#include <iostream>
#include <set>
#define MAXN 50010
using namespace std;
struct hhh{
int x,y,num;
void read(){
scanf("%d%d%d",&x,&y,&num);
}
}aum[MAXN];
struct hhhh{
int x,y,num;
void read(){
scanf("%d%d%d",&x,&y,&num);
}
}qv[MAXN];
struct data{
int y,num;
bool operator < (const data x)const{
return x.y>y;
}
};
multiset<data> s;
multiset<data>::iterator it;
int n,m,have; void cl(){
memset(qv,,sizeof(qv));
memset(aum,,sizeof(aum));
s.clear();
} bool cmp1(hhh x,hhh y){
if(x.x<y.x) return ;
return ;
} bool cmp2(hhhh x,hhhh y){
if(x.x<y.x) return ;
return ;
} int getit(int hh){
for(int i=n;i>=;i--) if(qv[i].x<=hh) return i;
return ;
} int getmin(int r,int now){
int numm=(<<),id=;
for(int i=;i<=r;i++){
if(qv[i].num==) continue;
if(qv[i].y<aum[now].y) continue;
if(numm>qv[i].y) numm=qv[i].y,id=i;
}
return id;
} void work(){
cl();
scanf("%d%d",&n,&m);for(int i=;i<=MAXN-;i++) qv[i].x=<<;
for(int i=;i<=n;i++) aum[i].read();
for(int i=;i<=m;i++) qv[i].read();
have=m;
sort(aum+,aum+n,cmp1);
sort(qv+,qv+m+,cmp2);
if(qv[].x>aum[].x){puts("No");return;}
int id=;s.insert((data){qv[].y,qv[].num});
for(int i=;i<=n;i++){
int x=aum[i].x,y=aum[i].y,num=aum[i].num;
while(qv[id+].x<=x){
id++; if(qv[id].num!=) s.insert((data){qv[id].y,qv[id].num});
}
while(num){
it=s.lower_bound((data){y,});
if(it==s.end()){puts("No");return;}
data xx=*it;int numm=xx.num;
if(num>=numm) num-=numm,s.erase(it),have--;
else s.erase(it),s.insert((data){xx.y,numm-num}),num=;
if(num!=&&have==){puts("No");return;}
}
if(have==&&i!=n){puts("No");return;}
}
puts("Yes");
} int main()
{
int t;cin>>t;
while(t--) work();
return ;
}
【JZOJ5329】-时间机器的更多相关文章
- 使用ubuntu搭建时间机器备份服务
如何在ubuntu下搭建时间备份服务 折腾了很久,终于可以了. 请严格按照下面的方式来操作. 真正明白问题的,可以按照自己的思路来. 我用的是ubnutu 16.04 安装配置netatalk sud ...
- Mac 的可清除空间(时间机器)
最近项目引入新技术flutter 所以需要更新xcode,下载完了xcode,安装不上 ,费解半天,提示磁盘空间不足.如下图,看到剩余九十多个G, 怎么都解决不了这个问题 就是买磁盘情理软件clean ...
- [CSP-S模拟测试]:时间机器(贪心+set)
题目描述 作为一名天才科学家,$Kurisu$已经设计出了时间机器的构造. 根据$Kurisu$的构想,时间机器中有$n$种需要放置电阻的节点,第$i$种节点有$s_i$个,其电压$U$的变动范围是$ ...
- JZOJ 5329. 【NOIP2017提高A组模拟8.22】时间机器
5329. [NOIP2017提高A组模拟8.22]时间机器 (File IO): input:machine.in output:machine.out Time Limits: 2000 ms M ...
- Windows 上的苹果 mac Time Machine 时间机器免费替代品 FreeFileSync 操作指南
Windows 上的苹果 mac Time Machine 时间机器免费替代品 FreeFileSync 操作指南 前言:为什么不用 Windows 10 自带的备份还原呢?因为不稳定,不能很好的备份 ...
- csp-s模拟测试42「世界线·时间机器·密码」
$t3$不会 世界线 题解 题目让求的就是每个点能到点的数量$-$出度 设每个点能到的点为$f[x]$ 则$f[x]=x \sum\limits_{y}^{y\in son[x]} U f[y]$ 用 ...
- JZOJ.5329【NOIP2017模拟8.22】时间机器
Description
- NOIP 模拟 $17\; \rm 时间机器$
题解 \(by\;zj\varphi\) 一道贪心的题目 我们先将节点和电阻按左边界排序,相同的按右边界排序 对于每一个节点,我们发现,选取左边界小于等于它的电阻中右边界大于它且最接近的它的一定是最优 ...
- 时光倒流程序设计-AlloyTicker
熵与负熵 熵遵循熵增原理,即无序非热能与热能之间的转换具有方向性.薛定谔说过:生命本质在于负熵.熵代表的是无序,负熵就是熵的对立,而负熵表示的则是有序.汲取负熵(米饭.面包.牛奶.鸡蛋),可以简单的理 ...
随机推荐
- XML的相关基础知识分享
XML和Json是两种最常用的在网络中数据传输的数据序列化格式,随着时代的变迁,XML序列化用于网络传输也逐渐被Json取代,前几天,单位系统集成开发对接接口时,发现大部分都用的WebService技 ...
- FreeSql (二十六)贪婪加载 Include、IncludeMany、Dto、ToList
贪婪加载顾名思议就是把所有要加载的东西一次性读取. 本节内容为了配合[延时加载]而诞生,贪婪加载和他本该在一起介绍,开发项目的过程中应该双管齐下,才能写出高质量的程序. Dto 映射查询 Select ...
- 腾讯工作近十年大佬:不是我打击你!你可能真的不会写Java
文章核心 其实,本不想把标题写的那么恐怖,只是发现很多人干了几年 Java 以后,都自认为是一个不错的 Java 程序员了,可以拿着上万的工资都处宣扬自己了,写这篇文章的目的并不是嘲讽和我一样做 Ja ...
- Java线程常见面试题
v 多线程实现手段: (1).继承Thread类 (2)实现Runable接口 (3)使用线程池 v 线程控制在那个包:java.util.concurrent. (1)提供了线程的运行.(2)线程池 ...
- Java 开发中常用的网站地址
博客地址:http://www.moonxy.com 一.前言 在日常的开发中,通常需要访问或者设置不同的网站来获取需要的数据,不如我们都知道 Linux 系统版本比较多(例如:Ubuntu.Cent ...
- Python 2.X和3.X主要区别和下载安装
一.python 2.X和3.X的区别 https://wenda.so.com/q/1459639143721779?src=140 二.Python的下载安装 1.Python下载 在python ...
- select2获取选中的val和text
用自己起的id就可以 获取val:$("#id").val() 获取text:$("#id").select2("data")[0].tex ...
- (转)阿里云CentOS 7下配置及使用mysql
一.安装 1 正确的安装方法: 众所周知,Linux系统自带的repo是不会自动更新每个软件的最新版本(基本都是比较靠后的稳定版),所以无法通过yum方式安装MySQL的高级版本.所以我们需要先安装带 ...
- 建议收藏 - 专业的MySQL开发规范
为了项目的稳定,代码的高效,管理的便捷,在开发团队内部会制定各种各样的规范 这里分享一份我们定义的MySQL开发规范,欢迎交流拍砖 数据库对象命名规范 数据库对象 命名规范的对象是指数据库SCHEMA ...
- 一个js破解教程
很好的一篇文章,先存着以后用到. 为了防止官网更新修复,存一下版本 https://pan.lanzou.com/b220073/ 密码:这是秘密 这篇文章以 JavaScript 为例讲解了破解的一 ...