UVALive 8513

有2种人,每个人有自己的权值$A_i$ $B_i$ 当$A_i + B_i >=K$时 两个人可以配对

问最多多少人可以配对

解法 :

  把$/{ A_i /}$ 排序 $/{ B_i /}$ 扔进多重集合里

  每次在集合中找大于等于 $K - A_i$ 的第一个$B_i$ 然后删除元素

  可以有小优化

  但是实际上我不知道我是否正确......

  因为上面挂的数据是假数据,任何输出都能过....

  本来想把17年uvalive真题切一切的,结果一上来就被打脸了...

  1. #include <bits/stdc++.h>
  2. #define ll long long
  3. #define rep(ii,a,b) for(int ii=a;ii<=b;ii++)
  4. using namespace std;
  5. const int maxn=2e5+10;
  6. const int maxm=1e6+10;
  7. const int INF=0x3f3f3f3f;
  8. int casn,n,m;
  9. ll k;
  10. ll a[maxn];
  11. multiset<ll>b;
  12. int vis[maxn];
  13. int main(){
  14. scanf("%d",&casn);
  15. while(casn--){
  16. b.clear();
  17. memset(vis,0,sizeof vis);
  18. scanf("%lld%lld",&n,&k);
  19. rep(i,1,n){
  20. scanf("%lld",a+i);
  21. }
  22. rep(i,1,n){
  23. int x;
  24. scanf("%lld",&x);
  25. b.insert(x);
  26. }
  27. b.insert(INF);
  28. int ans=0;
  29. sort(a+1,a+1+n);
  30. rep(i,1,n){
  31. if(a[i]>=k){
  32. ans+=n-i+1;
  33. break;
  34. }
  35. int pos=*b.lower_bound(k-a[i]);
  36. if(pos==INF)break;
  37. b.erase(pos);
  38. ans++;
  39. }
  40. printf("%d\n",ans+1);
  41. }
  42. return 0;
  43. }

  

UVALive 8513 lovers 2017 西安区域赛 B 贪心+multiset的更多相关文章

  1. UVALive 8519 Arrangement for Contests 2017西安区域赛H 贪心+线段树优化

    题意 等价于给一个数列,每次对一个长度为$K$的连续区间减一 为最多操作多少次 题解: 看样例猜的贪心,10分钟敲了个线段树就交了... 从1开始,找$[i,i+K]$区间的最小值,然后区间减去最小值 ...

  2. 2017西安区域赛A / UVALive - 8512 线段树维护线性基合并

    题意:给定\(a[1...n]\),\(Q\)次询问求\(A[L...R]\)的异或组合再或上\(K\)的最大值 本题是2017的西安区域赛A题,了解线性基之后你会发现这根本就是套路题.. 只要用线段 ...

  3. 2017 ACM区域赛(西安) 参赛流水账

    day 0: 周五, 鸽了概统课,早上和紫金港的几位小伙伴一起打车去萧山机场,从咸阳机场到西北工业大学坐了五十多个站的公交车,感觉身体被掏空.晚上在宾馆本来打算补之前训练的一个题,想想还是先花个十来分 ...

  4. 2017 ICPC区域赛(西安站)--- J题 LOL(DP)

    题目链接 problem description 5 friends play LOL together . Every one should BAN one character and PICK o ...

  5. 2017 ICPC西安区域赛 A - XOR (线段树并线性基)

    链接:https://nanti.jisuanke.com/t/A1607 题面:   Consider an array AA with n elements . Each of its eleme ...

  6. 2017乌鲁木齐区域赛D题Fence Building-平面图的欧拉公式

    这个题B站上面有这题很完整的分析和证明,你实在不懂,可以看看这个视频  https://www.bilibili.com/video/av19849697?share_medium=android&a ...

  7. hdu6229 Wandering Robots 2017沈阳区域赛M题 思维加map

    题目传送门 题目大意: 给出一张n*n的图,机器人在一秒钟内任一格子上都可以有五种操作,上下左右或者停顿,(不能出边界,不能碰到障碍物).题目给出k个障碍物,但保证没有障碍物的地方是强联通的,问经过无 ...

  8. HDU 6229 Wandering Robots(2017 沈阳区域赛 M题,结论)

    题目链接  HDU 6229 题意 在一个$N * N$的格子矩阵里,有一个机器人. 格子按照行和列标号,左上角的坐标为$(0, 0)$,右下角的坐标为$(N - 1, N - 1)$ 有一个机器人, ...

  9. 2017沈阳区域赛Infinite Fraction Path(BFS + 剪枝)

    Infinite Fraction Path Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 262144/262144 K (Java ...

随机推荐

  1. [Android] Android 卡片式控件CardView的优雅使用

    [Android] Android 卡片式控件CardView的优雅使用 CardView是在安卓5.0提出的卡片式控件 其具体用法如下: 1.在app/build.gradle 文件中添加 comp ...

  2. python里的input

    python2和python3的input是不同的 python3的input 对于python3,只有input,官方文档里是这样描述的 def input(*args, **kwargs): # ...

  3. 搭建VirtualBox虚拟机集群

    ===============================VirtualBox常用网络===============================NetworkAddress Translati ...

  4. Linq中Sum和Group的使用

    ].AsEnumerable() group c by c.Field<int>("Name") into s select new { ID = s.Select(m ...

  5. 1.关于Java

    一.Java简介 1.java语言的特性 java语言的重要特性:跨平台: 一次编译,到处运行. 2.java的环境搭建: 1.JRE: java运行环境. JRE = java 虚拟机 + 核心类库 ...

  6. luogu 1314 聪明的质检员

    二分答案的边界问题还是要注意 double挨着,int+1-1, 此题用到long long,所以初始化ans要足够大,前缀和优化 依然根据check答案大小左右mid,虽然有s,但是有了+1-1加持 ...

  7. 深度优先遍历(DFS)(转)

    优先搜索(DFS, Depth First Search)是一个针对图和树的遍历算法.早在19世纪就被用于解决迷宫问题. 对于下面的树而言,DFS方法首先从根节点1开始,其搜索节点顺序是1,2,3,4 ...

  8. js apply使用

    js中apply方法的使用 1.对象的继承,一般的做法是复制:Object.extend prototype.js的实现方式是:  Object.extend = function(destinati ...

  9. [C++]PAT乙级1012.数字分类 (20/20)

    /* 1012. 数字分类 (20) 给定一系列正整数,请按要求对数字进行分类,并输出以下5个数字: A1 = 能被5整除的数字中所有偶数的和: A2 = 将被5除后余1的数字按给出顺序进行交错求和, ...

  10. [C++]Linux之文件拷贝在系统调用和C库函数下的效率比较

    声明:如需引用或者摘抄本博文源码或者其文章的,请在显著处注明,来源于本博文/作者,以示尊重劳动成果,助力开源精神.也欢迎大家一起探讨,交流,以共同进步- 0.0 题目: 1. 分别利用文件的系统调用r ...