CF23C 思维
来源:互联网 发布:python writeline 编辑:程序博客网 时间:2024/06/05 07:12
http://codeforces.com/problemset/problem/23/C
/**CF23C 思维题目大意:给定2*n-1个箱子,里面有ai的苹果,oi的橘子,问怎样选出n个使得橘子苹果的数量和都不小于总数的一半解题思路:一开始按照x排序,那么从取到的第2个箱子开始,不会比上一次舍去的箱子里的x的数量少,再加上取得第一个箱子里面的x 说明x肯定比总数的一半多;y的话,每次两个里面取走一个大的,取得总数肯定不会比舍去的少。 这样取保证有解。*/#include <stdio.h>#include <string.h>#include <algorithm>#include <iostream>using namespace std;const int maxn=200004;struct note{ int x,y,ip;}a[maxn];bool cmp(note a,note b){ if(a.x==b.x) return a.y<b.y; return a.x<b.x;}int n,ans[maxn];int main(){ int T; scanf("%d",&T); while(T--) { scanf("%d",&n); for(int i=1;i<=2*n-1;i++) { scanf("%d%d",&a[i].x,&a[i].y); a[i].ip=i; } sort(a+1,a+n*2,cmp); int k=0; for(int i=1;i<2*n-1;i+=2) { if(a[i].y>=a[i+1].y) ans[k++]=a[i].ip; else ans[k++]=a[i+1].ip; } ans[k++]=a[2*n-1].ip; puts("YES"); sort(ans,ans+k); for(int i=0;i<k;i++) printf(i==k-1?"%d\n":"%d ",ans[i]); } return 0;}
1 0
- CF23C 思维
- cf23C Oranges and Apples (贪心_好题)
- 思维
- 思维
- 思维
- 思维
- 思维
- 思维
- 【思维方式】思维转个弯
- 完整性思维--层次思维
- 不战而胜思维
- 思维图谱
- 思维定式
- 思维吊床
- 思维方式
- 思维分析
- 思维元素
- 思维混乱
- 黑马程序员_网络编程(一)
- 我凭什么来“我来买”
- qemu KVM kernel module no such file or directory
- codeforces 446B DZY Loves Modification(枚举)
- 果断Mark!国外程序员收集整理的PHP资源大全
- CF23C 思维
- java 中浮点数的计算
- 几种遍历 List 的方法
- android程序监听home键与电源键
- apk混淆和jar混淆
- 究竟什么是真正的用户运营
- qt5解决读取ini文件中中文乱码
- MySQL修复表的三种方法
- 自定义抽屉