~~~题面~~~

题解:

  神奇的贪心题,,,感觉每次做贪心题都无从下手。。。

  我们首先按照a对所有卡片从小到大排序,然后从1开始,从连续的两张牌中取b最大的,最后一张单出来的也取了。

  可以证明,这样的方案一定是合法的。

  为什么呢?

  假设我们将排序后的牌按照(1, 2) (3, 4) ……这样的方式两两分组,那么既然我们每次都是取b最大的那张,b的限制显然我们已经满足了。

  现在来考虑a,假设我们遇到了最坏的情况,在每一组里面,我们都取到了a最小的那个,即我们取到了第1, 3, 5,……张牌(因为已经排好序了,所以a最小的一定是这些),那么这个时候我们可以改变一下分组方式由原来的(1, 2) (3, 4) ……变成1, (2, 3), (4, 5) ……(2 * n, 2 * n + 1),那么你可以发现,这时我们取的牌就变成了任意组当中a最大的那张,因此a也是满足条件的。

  证明完毕。

 #include<bits/stdc++.h>
using namespace std;
#define R register int
#define AC 210000 int n; struct card{
int a, b, id;
}s[AC]; inline bool cmp(card x, card y)
{
return x.a < y.a;
} inline int read()
{
int x = ;char c = getchar();
while(c > '' || c < '') c = getchar();
while(c >= '' && c <= '') x = x * + c - '', c = getchar();
return x;
} void pre()
{
n = read();
int b = * n + ;
for(R i = ; i <= b; i ++)
s[i].a = read(), s[i].b = read(), s[i].id = i;
sort(s + , s + b + , cmp);
} void work()
{
int b = * n;
for(R i = ; i <= b; i += )
{
if(s[i].b > s[i + ].b) printf("%d\n", s[i].id);
else printf("%d\n", s[i + ].id);
}
printf("%d\n", s[ * n + ].id);
} int main()
{
freopen("in.in", "r", stdin);
pre();
work();
fclose(stdin);
return ;
}

最新文章

  1. 初识Mybatis框架,实现增删改查等操作(动态拼接和动态修改)
  2. 如何创建一个GitLab Web Hooks?
  3. Modbus总线CRC16效验算法C语言
  4. Android Service完全解析,关于服务你所需知道的一切(上)
  5. Android数据存储之SQLite的操作
  6. Marching Cube
  7. java多线程编程(二创建线程)
  8. javascript设计模式学习之六——代理模式
  9. 如何查看lib文件的导出函数
  10. Oracle自定义数据类型 1
  11. mysql的基础操作
  12. js存款计算器原生小demo
  13. CentOS7 Redis安装
  14. yii批量插入的方法
  15. 使用原生 JS 复制文本兼容移动端 iOS &amp; android
  16. npm WARN enoent ENOENT: no such file or directory, open &#39;C:\Users\package.json&#39;
  17. windows下bat批处理执行sql语句__Mysql
  18. Coprime (单色三角形+莫比乌斯反演(数论容斥))
  19. 第19月第2天 cellForItemAtIndexPath 返回空
  20. pyquery的使用

热门文章

  1. 前端图片转base64,转格式,转blob,上传的总结
  2. WeTest功能优化第2期:云真机智能投屏,调试告别鼠标
  3. ElasticSearch搜索引擎安装配置中文分词器IK插件
  4. Selenium WebDriver(Python)API
  5. Linux命令应用大词典-第28章 硬件管理
  6. leetcode-买卖股票的最佳时机(动态规划)
  7. BFC与合并 浅析
  8. java.net.ProtocolException: Server redirected too many times
  9. codeforces 295C Greg and Friends(BFS+DP)
  10. redis集群sentinel哨兵模式的搭建与实际应用