【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】-时间机器的更多相关文章

  1. 使用ubuntu搭建时间机器备份服务

    如何在ubuntu下搭建时间备份服务 折腾了很久,终于可以了. 请严格按照下面的方式来操作. 真正明白问题的,可以按照自己的思路来. 我用的是ubnutu 16.04 安装配置netatalk sud ...

  2. Mac 的可清除空间(时间机器)

    最近项目引入新技术flutter 所以需要更新xcode,下载完了xcode,安装不上 ,费解半天,提示磁盘空间不足.如下图,看到剩余九十多个G, 怎么都解决不了这个问题 就是买磁盘情理软件clean ...

  3. [CSP-S模拟测试]:时间机器(贪心+set)

    题目描述 作为一名天才科学家,$Kurisu$已经设计出了时间机器的构造. 根据$Kurisu$的构想,时间机器中有$n$种需要放置电阻的节点,第$i$种节点有$s_i$个,其电压$U$的变动范围是$ ...

  4. JZOJ 5329. 【NOIP2017提高A组模拟8.22】时间机器

    5329. [NOIP2017提高A组模拟8.22]时间机器 (File IO): input:machine.in output:machine.out Time Limits: 2000 ms M ...

  5. Windows 上的苹果 mac Time Machine 时间机器免费替代品 FreeFileSync 操作指南

    Windows 上的苹果 mac Time Machine 时间机器免费替代品 FreeFileSync 操作指南 前言:为什么不用 Windows 10 自带的备份还原呢?因为不稳定,不能很好的备份 ...

  6. csp-s模拟测试42「世界线·时间机器·密码」

    $t3$不会 世界线 题解 题目让求的就是每个点能到点的数量$-$出度 设每个点能到的点为$f[x]$ 则$f[x]=x \sum\limits_{y}^{y\in son[x]} U f[y]$ 用 ...

  7. JZOJ.5329【NOIP2017模拟8.22】时间机器

    Description

  8. NOIP 模拟 $17\; \rm 时间机器$

    题解 \(by\;zj\varphi\) 一道贪心的题目 我们先将节点和电阻按左边界排序,相同的按右边界排序 对于每一个节点,我们发现,选取左边界小于等于它的电阻中右边界大于它且最接近的它的一定是最优 ...

  9. 时光倒流程序设计-AlloyTicker

    熵与负熵 熵遵循熵增原理,即无序非热能与热能之间的转换具有方向性.薛定谔说过:生命本质在于负熵.熵代表的是无序,负熵就是熵的对立,而负熵表示的则是有序.汲取负熵(米饭.面包.牛奶.鸡蛋),可以简单的理 ...

随机推荐

  1. Java网络编程 -- Netty入门

    Netty简介 Netty是一个高性能,高可扩展性的异步事件驱动的网络应用程序框架,它极大的简化了TCP和UDP客户端和服务器端网络开发.它是一个NIO框架,对Java NIO进行了良好的封装.作为一 ...

  2. lambda表达式与匿名内部类与双冒号(::)

    lambda表达式在只有一条代码时还可以引用其他方法或构造器并自动调用,可以省略参数传递,代码更加简洁,引用方法的语法需要使用::符号.lambda表达式提供了四种引用方法和构造器的方式: 引用对象的 ...

  3. 每天学会一点点(枚举enum)

    枚举的特点: enum和class.interface的地位一样 使用enum定义的枚举类默认继承了java.lang.Enum,而不是继承Object类.枚举类可以实现一个或多个接口. 枚举类的所有 ...

  4. Maven项目使用Nexus作为远程仓库的settings.xml配置

    Maven项目使用Nexus作为远程仓库的settings.xml配置(转) 在自己电脑C:\Users\hanmm\.m2\下的setting.xml. 1.服务器配置 <server> ...

  5. 如何设置java虚拟机参数

    这两天在看java虚拟机,从书上看到可以自己设置java虚拟机的参数,可以方便开发人员进行系统调优和故障排查 Ecplise设置java虚拟机参数: window-->preferences-- ...

  6. Spring系列__04AOP

    AOP简介 今天来介绍一下AOP.AOP,中文常被翻译为"面向切面编程",其作为OOP的扩展,其思想除了在Spring中得到了应用,也是不错的设计方法.通常情况下,一个软件系统,除 ...

  7. Spring Cloud Eureka 分布式开发之服务注册中心、负载均衡、声明式服务调用实现

    介绍 本示例主要介绍 Spring Cloud 系列中的 Eureka,使你能快速上手负载均衡.声明式服务.服务注册中心等 Eureka Server Eureka 是 Netflix 的子模块,它是 ...

  8. Android Q 正式命名为 Android 10

    根据官方博文,谷歌已经公布了 Android Q 的名称,它并不是想以前一样,以甜食命名,也不是以任何以字母 Q 开头来命名,而是简单称它为 Android 10. 该公司表示,它正在改变其发布版本的 ...

  9. RatingBar星级拖动条

    RatingBar和SeekBar用法类似,他们都继承AbsSeekBar类; RatingBar的xml属性 android:numStars="5" 表示有5颗星  andro ...

  10. 初学FPGA-IP核错误

    [BD 5-336] This command cannot be run, as the BD-design is locked. Locked reason(s):* BD design cont ...