传送门:
http://codeforces.com/contest/596/problem/C

前一篇是数据结构的解法,这回换一种解法,其实是屌丝解法,方法和上面一样,只是用
vector加上局部排序的方法,然后最后判断你的时候不用那么高端的count,而是扫一遍判断合法性,一遍就够了,因为我往里面加的时候就是就是按照每个w值相等的时候递增加的,所以说之可能在不同w之间会出现不满足题意的情况!!!!!

这次的struct 赋值函数的写法我不会忘了,还有vector取首位元素的时候需要
*vec.begin()
这种写法固然是丑陋,但比之前的set写法要快!

而且vector在sort的时候也可以写cmp函数!

#include <bits/stdc++.h>
using namespace std;
const int maxn=2e5+10;
const int mod=1e5;
struct node{int x,y,id;node(int _x=0,int _y=0,int _z=0){x=_x;y=_y;id=_z;}
}a[maxn];
vector<node>b[maxn];
int n,x,y,k;int ans[maxn];
bool cmp(node a,node b){if(a.x==b.x) return a.y<b.y;return a.x<b.x;
}
int main(){cin>>n;for(int i=1;i<=n;i++){scanf("%d%d",&x,&y);a[i]=node(x,y,i);b[y-x+mod].push_back(node(x,y,i));}for(int i=1;i<=n;i++){scanf("%d",&k);k+=mod;if(b[k].size()==0) return puts("NO");sort(b[k].begin(),b[k].end(),cmp);ans[i]=(*b[k].begin()).id;b[k].erase(b[k].begin());}for(int i=1;i<n;i++){if(a[ans[i]].x>=a[ans[i+1]].x&&a[ans[i]].y>=a[ans[i+1]].y){return puts("NO");}}puts("YES");for(int i=1;i<=n;i++){printf("%d %d\n",a[ans[i]].x,a[ans[i]].y);}return 0;
}

续 Codeforces 596 C Wilbur and Points相关推荐

  1. CodeForces 596 B Wilbur and Array

    <span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255) ...

  2. C. Wilbur and Points(简单贪心加合法性判断)

    C. Wilbur and Points Wilbur is playing with a set of n points on the coordinate plane. All points ha ...

  3. [堆+贪心] CF596C. Wilbur and Points

    CF596C. Wilbur and Points 题意: 太难懂了.有一个平面点集,对集合中任意一点(x,y),满足以原点和(x,y)构成的矩形边上和内部的所有点也都在集合里. 现在要给点标号,为了 ...

  4. CodeForces 596C Wilbur and Points

    先对n个点分类,然后按题意要求构造,构造的时候判断这个点的右上方之前是否有点,判断可以用线段树来操作. #include<cstdio> #include<cstring> # ...

  5. Codeforces 698D Limak and Shooting Points (搜索)

    题目链接 https://codeforces.com/contest/698/problem/D 题解 玄妙好题啊 对于每个元素\(j\)判断\(j\)是否可被射中.假设我们要用第\(i\)个弓箭射 ...

  6. Codeforces Beta Round #19 D. Points

    题意: 给定一个平面, add(x,y), 增加一个点(x,y),保证以前不存在; delete(x,y), 删除一个点(x,y),保证存在你; query(x,y), 询问严格大于(x,y)的点,输 ...

  7. 【集训队作业】IOI 2020 集训队作业 试题泛做 13

    Codeforces 679E Bear and Bad Powers of 42 不难发现数列中的元素不可能达到很大,我们只需要考虑 424242 的前若干个幂. 考虑没有赋值操作的做法,则可用线段 ...

  8. Codeforces Round #331 (Div. 2) A. Wilbur and Swimming Pool 水题

    A. Wilbur and Swimming Pool Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/conte ...

  9. Codeforces Round #331 (Div. 2) D. Wilbur and Trees 记忆化搜索

    D. Wilbur and Trees Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/596/p ...

最新文章

  1. SAD立体匹配算法在opencv中的实现
  2. 关于IIS 7.0 局域网无法访问的解决方法 windows7 iis局域网不能访问
  3. pytorch笔记:torch.nn.Threshold
  4. IOS UIViewController的生命周期
  5. PgSQL · 最佳实践 · CPU满问题处理
  6. python合并列表重新排序_python实现的合并两个排序的列表
  7. 基于Google Reader发展起来的个性化推荐系统之三大问题
  8. Docker最全教程之使用.NET Core推送钉钉消息(二十)
  9. python用input输入列表_Python如何使用input函数获取输入
  10. Python之math库
  11. 主播助理的三种常见工作类型
  12. ARM中国区大学计划
  13. bzoj4998 星球联盟
  14. python:命名空间学习
  15. VIP会员积分管理系统c语言,路西牌会员管理系统。
  16. 联想开机启动项按哪个_联想笔记本按哪个按键进入U盘启动|详解联想进入U盘启动的教程...
  17. IEEE期刊投稿流程
  18. 华为HCIA-datacom 学习笔记17——IPv6基础
  19. 「五度易链」我国华为、阳光电源逆变器出货量连续多年位居全球榜首
  20. 如何在计算机课堂中培养核心素养,利用信息技术培养学生学科核心素养的尝试...

热门文章

  1. 百度运维部—趣味运动会
  2. 如东人院附近一网吧转让
  3. android获取到电信的手机号码,Android基站信息获取以及Sim卡相关信息获取
  4. tensorflow-gpu版本使用问题和方法汇总
  5. 微信注册崩溃?appid签名无法注册or如何查看签名是否一致?如何注册appid?jks和keystore的区别?
  6. 关于数据库锁的自问自答
  7. 在3D空间中绘制四边形
  8. 1047: 字符图形3-平行四边形
  9. 电脑重装系统如何在 Win11查看显卡型号信息
  10. visual studio 全局搜索 找不到文字