【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
熵与负熵 熵遵循熵增原理,即无序非热能与热能之间的转换具有方向性.薛定谔说过:生命本质在于负熵.熵代表的是无序,负熵就是熵的对立,而负熵表示的则是有序.汲取负熵(米饭.面包.牛奶.鸡蛋),可以简单的理 ...
随机推荐
- 049 模块6-wordcloud库的使用
目录 一.wordcloud库基本介绍 1.1 wordcloud库概述 1.2 wordcloud库的安装 二.wordcloud库使用说明 2.1 wordcloud库基本使用 2.2 wordc ...
- PHP的调试环境程序集成包----phpStudy
PHP (超文本预处理器) PHP即“超文本预处理器”,是一种通用开源脚本语言.PHP是在服务器端执行的脚本语言,与C语言类似,是常用的网站编程语言.PHP独特的语法混合了C.Java.Perl以及 ...
- asp.net core 使用 signalR(一)
asp.net core 使用 signalR(一) Intro SignalR 是什么? ASP.NET Core SignalR 是一个开源代码库,它简化了向应用添加实时 Web 功能的过程. 实 ...
- CF979C Kuro and Walking Route(简单的dfs/树形dp)
题意:给出一个$n$个点,$n-1$条边的无向连通图,给出两个点$x,y$,经过$x$后的路径上就不能经过$y$,问可以走的路径$(u,v)$有多少条,($(u,v)$和$(v,u)$考虑为两条不同的 ...
- (1)jsoncpp库的使用
本节主要介绍 json是什么以及jsoncpp库的使用. (1)JSON是什么 json 是一种轻量级的文本数据交换格式: json 独立于语言.平台,使用java script语法来描述对象 ...
- Net基础篇_学习笔记_第九天_数组
结构:一次性存储不同类型的变量: 数组:一次性存储相同类型的变量: 数组的语法: 数组类型[ ] 数组名=new 数组类型[数组长度]: int[ ] nums=new int[10]; 数组初值都是 ...
- 腾讯云和阿里云部署web 项目tomcat 日志 中文变成问号
在部署项目到云上的时候,遇到了tomcat logs 日志中文变问号的问题,今天终于得到解决了 这是中文变成问号的的截图 打开到tomcat bin 目录的文件夹 找到catalina.sh 文件 ...
- Elasticsearch(8) --- 聚合查询(Metric聚合)
Elasticsearch(8) --- 聚合查询(Metric聚合) 在Mysql中,我们可以获取一组数据的 最大值(Max).最小值(Min).同样我们能够对这组数据进行 分组(Group).那么 ...
- mysql 存储过程 (ps:用法自己看 :)
delimiter // drop procedure if exists operate_tables // create procedure operate_tables (in db_name ...
- SpringBoot的注解注入功能移植到.Net平台(开源)
*:first-child { margin-top: 0 !important; } .markdown-body>*:last-child { margin-bottom: 0 !impor ...