题意:第一行给定n个点和m条绳子,第二行是点的位置(从小到大排列),第三行是绳子的长度。问能不能把所有的绳子都连进去(绳子的长度>=点之间的距离才可以连,且相同的两个点之间不能连两条绳子)。

思路:
贪心,n个点共可以连n*(n-1)/2条边,如果绳子数量大于这些就no
维护一个最小堆
然后先遍历一遍把相邻两点的距离放入堆中

越短的绳子肯定要对应距离越小的边,我们从小到大遍历绳子,每次找出里面最短的边,与当前遍历到的的绳子长度进行比较,如果当前遍历到的绳子比目前能连的最短的边的长度还小,那么肯定不能满足题目要求,直接跳出,否则的话,把目前的l与r右边的一个组成的距离放入堆中,进行下一次循环,直到遍历完所有绳子。如果能遍历完,那么满足了要求。

#include<iostream>
#include<set>
#include<queue>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
#define ll long long
using namespace std;
const int maxn=5e5+5;
struct node{int l,r,val;bool operator < (const node a) const{return a.val<val;}
};
int a[maxn],s[maxn],n,m;
bool solve()
{if(m>n*(n-1)/2)return false;priority_queue<node> q;for(int i=0;i<n-1;i++)q.push(node{i,i+1,a[i+1]-a[i]});int cnt=0;while(cnt<m){node temp=q.top();q.pop();int l=temp.l,r=temp.r,val=temp.val;if(s[cnt++]<val)return false;if(r<n-1)q.push(node{l,r+1,a[r+1]-a[l]});}return true;//忘了写 竟然疯狂RE
}
int main()
{scanf("%d%d",&n,&m);for(int i=0;i<n;i++)scanf("%d",&a[i]);for(int i=0;i<m;i++)scanf("%d",&s[i]);sort(a,a+n);sort(s,s+m);if(solve())printf("yes");else printf("no");return 0;
}

[Kattis-crisscrosscables] Criss-Cross Cables (贪心+优先队列)相关推荐

  1. HDU 6438 网络赛 Buy and Resell(贪心 + 优先队列)题解

    思路:维护一个递增队列,如果当天的w比队首大,那么我们给收益增加 w - q.top(),这里的意思可以理解为w对总收益的贡献而不是真正获利的具体数额,这样我们就能求出最大收益.注意一下,如果w对收益 ...

  2. 1163 最高的奖励(贪心+优先队列)

    有N个任务,每个任务有一个最晚结束时间以及一个对应的奖励.在结束时间之前完成该任务,就可以获得对应的奖励.完成每一个任务所需的时间都是1个单位时间.有时候完成所有任务是不可能的,因为时间上可能会有冲突 ...

  3. 贪心+优先队列 HDOJ 5360 Hiking

    题目传送门 1 /* 2 题意:求邀请顺序使得去爬山的人最多,每个人有去的条件 3 贪心+优先队列:首先按照l和r从小到大排序,每一次将当前人数相同的被邀请者入队,那么只要能当前人数比最多人数条件小, ...

  4. 贪心(优先队列) - New Year Snowmen - CodeForces - 140C

    贪心(优先队列) - New Year Snowmen - CodeForces - 140C 题意: 给定一个长度为n的正整数序列a1,a2,...,an.给定一个长度为n的正整数序列a_1,a_2 ...

  5. CodeForces 140C New Year Snowmen (贪心+优先队列)

    题意:n个数,选三个严格下降的数为一组,求最多能选多少组,并列出每组哪些数. 题解:贪心+优先队列 最多能选多少组,那么必须贪心数量多的. 例如:1 1 2 3 4 5 如果按照数的大小排序,只能贪到 ...

  6. CF140C New Year Snowmen(贪心+优先队列)

    CF140C 贪心+优先队列 贪心策略:每次取出数量最多的三种球,合成一个答案,再把雪球数都-1再插回去,只要还剩下三种雪球就可以不断地合成 雪球数用优先队列维护 #include <bits/ ...

  7. 【BHOJ 女娲加农炮 |、||】贪心 | 优先队列 | 堆 | E

    这次我们通过两道例题来总结一下优先队列的用法和实现: 目录: [BHOJ 1512]女娲加农炮 [BHOJ 1517]女娲加农炮II [BHOJ 1512]女娲加农炮 核心:贪心 + 优先队列 URL ...

  8. codeforces D. Fedor and coupons 贪心+优先队列

    题目地址:点击打开链接 D. Fedor and coupons time limit per test 4 seconds memory limit per test 256 megabytes i ...

  9. 小A与任务 (贪心 优先队列)

    题目链接:小A与任务 题意: 小A手头有 n 份任务,他可以以任意顺序完成这些任务,只有完成当前的任务后,他才能做下一个任务 第 i 个任务需要花费 xi 的时间,同时完成第 i 个任务的时间不能晚于 ...

  10. LA 4254 Processor 处理器 【二分 贪心 优先队列】

    题目链接: http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=21663 二分: 最大值最小的问题通过二分来求解.对处理器速度进行 ...

最新文章

  1. [轉]俞老师在同济大学的演讲词:度过有意义的生命
  2. Kubernetes二次开发--Operator的使用
  3. QTP的Action之间传递参数
  4. List, Set, Map是否继承自Collection接口?
  5. 【数字信号处理】基于DFT的滤波系列3之插值滤波(含MATLAB代码)
  6. 1000道Python题库系列分享25(40道Pandas客观题)
  7. 顺序堆栈实现数制转换以十进制数转化为八进制数为例
  8. 7 php程序的调试方法_PHP 程序员的调试技术
  9. WinCE设备仿真器+虚拟串口+GPS模拟器搭建开发测试环境
  10. php bing翻译的api,使用PHP和SOAP访问Bing翻译服务
  11. EDA与VHDL题目——七人表决器
  12. 灵格斯怎么屏幕取词_完整页灵格斯词霸怎么用,灵格斯词霸使用教程_9号资讯
  13. VMware5.5-VMware补丁程序VUM
  14. 传智:自己简单实现一个struts2框架的demo
  15. 汇编语言:协处理器浮点指令:FILD
  16. 计算机不识别加密狗,用友加密狗识别不到_电脑无法识别用友软件加密狗
  17. 稳压二极管与肖特基二极管
  18. ESB实现SOA架构
  19. 计算机word打不原因什么意思,word打不开什么原因
  20. input输入框简单的实时搜索(过滤)功能 (uni-app)

热门文章

  1. [C0] 人工智能大师访谈 by 吴恩达
  2. SSL/TLS(3): CA证书解释
  3. 京东客小程序功能模块源码V6.0.2
  4. PDF怎么打印?为什么有时选择打印没有反应?
  5. 概率逗号分号_概率P中有多个逗号表示什么意思
  6. Python 数据处理与分析(三) 设计一个高回报的投资组合(投资回报和风险分析)任务 2:计算不同类型的收益率和投资组合的收益率
  7. Android app语言中英文转换、多语言转换
  8. mb.php js 劫持,黑帽seo防止网站被k的js劫持跳转代码
  9. java实现微信网页授权登录
  10. HTTP 状态码502 深度解析