【问题描述】 小沐把玩具扔在地板上,乱七八糟。庆幸的是,有一种特殊的机器人可以收拾玩具。不过他需要 确定哪个机器人去拣哪个玩具。 一共有 T 个玩具,整数 w[i]表示这个玩具的重量,整数 s[i]表示这个玩具的体积。机器人有 两种,分别是:弱机器人和小机器人。

◆有 A 个弱机器人。每个弱机器人有一个重量限制 X[i],它只能拿起重量严格小于 x[i]的玩 具,与玩具的体积大小没有关系。

◆有 B 个小机器人。每个小机器人有一个体积限制 Y[i],它只能拿起体积严格小于 Y[i]的玩 具,与玩具的重量大小没有关系。 每个

机器人用 1 分钟将一个玩具拿走放好。不同的机器人可以同时拿走并放好不同的玩具。 你的任务是确定机器人是否可以将所有玩具都收拾好,如果是,那么最少用多少时间可以收拾好。

Marita's little brother has left toys all over the living room floor! Fortunately, Marita has developed special robots to clean up the toys. She needs your help to determine which robots should pick up which toys. There are T toys, each with an integer weight W[i] and an integer size S[i] . Robots come in two kinds: weak and small.

There are A weak robots. Each weak robot has a weight limit X[i] , and can carry any toy of weight strictly less than X[i] . The size of the toy does not matter.

There are B small robots. Each small robot has a size limit Y[i] , and can carry any toy of size strictly less than Y[i] . The weight of the toy does not matter.

Each of Marita's robots takes one minute to put each toy away. Different robots can put away different toys at the same time. Your task is to determine whether Marita's robots can put all the toys away, and if so, the shortest time in which they can do this.

这居然不是IOI的签到题(Day2-T5)

神仙贪心。

明显发现答案成一个单调的情况

二分答案

如何贪心:先对询问以重量关键字排序

对weak再按照尽可能取体积大的原则取走

对于剩下small的按照尽可能取体积大的原则取走

#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstring>
#include<algorithm>
#include<queue>
using namespace std;
typedef int INT;
#define int long long
const int N=1e6+10;
struct Node{int x,y;
}S[N],tmp[N];
int X[N];
int Y[N];
int T,A,B;
priority_queue<Node> Q;
bool cmp(Node A,Node B){return A.x<B.x;
}
bool cmp2(int A,int B){return A>B;
}
bool operator < (Node A,Node B){return A.y<B.y;
}
bool check(int sum){while(!Q.empty())Q.pop();int now=1;for(int i=1;i<=A;++i){while(S[now].x<X[i]&&now<=T)Q.push(S[now]),++now;for(int j=1;!Q.empty()&&j<=sum;++j)Q.pop();}while(now<=T)Q.push(S[now]),++now;for(int i=1;i<=B;i++){for(int j=1;j<=sum&&!Q.empty()&&Q.top().y<Y[i];++j)Q.pop();}if(!Q.empty())return 0;return 1;
}
INT main(){
//  freopen("test.in","r",stdin);scanf("%lld%lld%lld",&A,&B,&T);for(int i=1;i<=A;++i)scanf("%lld",&X[i]);sort(X+1,X+1+A);for(int i=1;i<=B;++i)scanf("%lld",&Y[i]);sort(Y+1,Y+1+B,cmp2);for(int i=1;i<=T;++i){scanf("%lld%lld",&S[i].x,&S[i].y);}sort(S+1,S+1+T,cmp);int l=1;int r=T+1;int ans=-1;while(l<=r){int mid=(l+r)/2;if(check(mid)){ans=mid;r=mid-1;}else l=mid+1;}cout<<ans;
}

转载于:https://www.cnblogs.com/Leo-JAM/p/10079128.html

省选专练之神仙贪心IOI2013Robert相关推荐

  1. 省选专练(学习)可持久化Trie树(BZOJ3261)

    这个似乎也不是好难啊 但是可持久化Trie还是可以干许多线性基不能干的事. 什么是可持久化Trie? 顾名思义:是一种可以持久化的Trie树 他的建树方式和键值式线段树方式类似 也支持版本的减法 查询 ...

  2. 省选专练[POI2005]SAM-Toy Cars

    经典贪心 策略如下: 每次贪心让最需要的放下 易证正确 #include<bits/stdc++.h> using namespace std; const int N=1e6; inli ...

  3. R6饮料AK赛(NOIP模拟赛)/省选专练HDU 5713 K个联通块

    我好菜啊100+60+30 滚犊子吧,两天加起来才410搞个屁我一年前都可以考400 不说了,题毕竟比较难 T1还是水题但是比昨天难 这是一个开绝对值不等式的题. 根据对奇数和偶数的最优根的归纳一定有 ...

  4. 网络流学习总结和省选专练SCOI2015小凸玩矩阵

    这是四川连着第几个年头考二分套网络流了? 虽然这是一个二分图最大匹配,但是我匈牙利写挂了. 我太弱了. 好了不瞎扯牛逼了,这个题这么搞: 首先题目就告诉你求第k大最小. 首先这就让人瑟瑟发抖....第 ...

  5. 省选专练之文艺计算姬

    "奋战三星期,造台计算机".小W响应号召,花了三星期造了台文艺计算姬. 文艺计算姬比普通计算机有更多的艺术细胞. 普通计算机能计算一个带标号完全图的生成树个数,而文艺计算姬能计算一 ...

  6. 省选专练[CQOI2007]涂色

    不好理解的DP 伪区间DP F(i,j)表示子串i-j实现的方式最小 当i=j时明显为1 当s[i]==s[j]时 这里是理解的重难点: 通过递归可知当你刷i的时候顺便刷到j就好了 然后就是标准的区间 ...

  7. 省选专练之后缀自动机SPOJ1811LCS - Longest Common Substring

    陈老师引入SAM的例题 求两个串的LCS 直接建一个串的SAM,并且把另外一个串放进去跳. 这个方法很经典! 几乎满足了所有两个串的公共串问题的所有解法 有巨子说这个跳是均摊Log的,我也不知道QwQ ...

  8. 省选专练(学习)AC自动机

    我好菜啊 AC自动机都不会 AC自动机可以干什么: 用一个模板串匹配多个子串. 这便让AC自动机可以干许多KMP和Tri树不能干的事. AC自动机的构造 首先建立一颗Trie树. 其次利用KMP的思想 ...

  9. 省选专练[NOI2008]志愿者招募

    一类新式网络流问题 按时间为键值拆点 链式连边. 考点:流量平衡思想 考点出处:网络流24题最长K重区间覆盖问题 建边: 每一天向下一天连INF-A[i],0的边 每一次劳工用差分的方式建边INF,c ...

最新文章

  1. calendar当前时间整点_时间处理相关类
  2. 什么工具可以去视频去水印
  3. UVA10870递推关系(矩阵乘法)
  4. 如何根据原理图画封装_常用原理图封装
  5. BZOJ1299 [LLH邀请赛]巧克力棒
  6. 设计人的33个好习惯
  7. Cordova用插件时注意事项,不然,插件调用不到!
  8. SSM 生成mapper中xml文件:未能解析映射资源:“文件嵌套异常
  9. Codeforces Round 1 - 10总结 【@Abandon】
  10. 深度理解 RGMII (包含Linux和realtek)
  11. [NOI2014]起床困难综合症
  12. 网站不收录怎么办?网站SEO优化工具
  13. OceanBase数据库实践入门——手动搭建OceanBase集群
  14. coq程序编写好用的IDE推荐
  15. eos 区块链 java 开发_EOS 交易验证的主要思路 - EOS 区块链开发实战
  16. js两只手指控制div图片放大缩小功能
  17. Oracle删表报错ora00054,【Oracle】ORA-00054 错误解决方法
  18. git push到远程仓库时出现unable to access 'https://github.com/**': The requested URL returned error: 403
  19. 在Windows10中对于文件做MD5校验
  20. Chef自动化部署框架

热门文章

  1. 价值6.11亿美元的入侵工具无人问津
  2. 对象序列化(六):应用实例-WPF对象的XAML序列化
  3. 不是VIP用户也不怕 不需任何补丁屏蔽迅雷广告!
  4. 二分查找树性能分析(Binary Search Tree Performance Analysis)
  5. linux下配置Docker的jupyter notebook环境
  6. 【正一专栏】扶不上墙的大巴黎和自信过度的热刺
  7. tensorflow sobel算子实现
  8. oem客户工程流程图_OEM产品流程图
  9. actuator 微服务信息的完善
  10. mysql的优化——索引介绍