南阳理工OJ_题目710 外星人的供给站
来源:互联网 发布:好看的宫廷小说知乎 编辑:程序博客网 时间:2024/05/16 01:17
#include <iostream>#include <stdlib.h>#include <math.h>//贪心算法 //把点转换成区间//去掉大区间//贪心开始... using namespace std;struct seat{int x;//int y;//坐标 double left;//double right;//区间 int flag;//标记,0为去掉 };int cmp(const void *_a, const void *_b);bool is_in(seat a, double xy, int r);int main(){int k;cin >> k;while(k--){seat a[110];int n, r;cin >> n >> r;for (int i = 0; i < n; i++){cin >> a[i].x >> a[i].y;a[i].flag = 1;a[i].left = a[i].x - sqrt(r*r - a[i].y*a[i].y);a[i].right = a[i].x + sqrt(r*r - a[i].y*a[i].y);}qsort(a, n, sizeof(seat), cmp);//按照区间左值排序 for(int i = 0; i < n; i++)//去除大区间 {for(int j = i+1; j < n; j++){if(a[i].flag == 1 && a[i].left <= a[j].left && a[i].right >= a[j].right)a[i].flag = 0;}}int count = 0;double current;for(int i = 0; i < n; i++){if(a[i].flag == 1){current = a[i].right;count++;a[i].flag = 0;for(int j = i+1; j < n; j++){if(a[j].left <= current && a[j].right >= current)a[j].flag = 0;}}}cout << count << endl;}}int cmp(const void *_a, const void *_b){seat *a;seat *b;a = (seat *)_a;b = (seat *)_b;if(a->left > b->left)return 1;if(a->left == b->left)return 0;if(a->left < b->left)return -1;}
0 0
- 南阳理工OJ_题目710 外星人的供给站
- NYOJ 题目710 外星人的供给站
- 710 外星人的供给站
- NYOJ-710(贪心)-题目----------------------------------外星人的供给站
- 南阳理工OJ_题目52 无聊的小明
- 南阳理工OJ_题目540 奇怪的排序
- 南阳理工OJ_题目171 聪明的kk
- 南阳理工OJ_题目71 独木舟上的旅行
- 南阳理工OJ_题目914 Yougth的最大化
- 南阳理工OJ_题目49 开心的小明
- 南阳理工OJ_题目170 网络的可靠性
- 南阳理工OJ_题目20 吝啬的国度
- 外星人的供给站
- 外星人的供给站
- 外星人的供给站
- 南阳理工OJ_题目709 异形卵
- 南阳理工OJ_题目714 Card Trick
- 南阳理工OJ_题目16 矩形嵌套
- char控件
- android增量更新demo
- Ubuntu 下ftp服务器的安装配置
- Cocos2d-x笔记(3)
- 关于Qt中信号和槽的Connection
- 南阳理工OJ_题目710 外星人的供给站
- Cocos2d-x笔记(4)
- math.h 功能索引
- 小分队线下技术交流会火热来袭!
- OM问题集锦
- 自动选择SVG和VML的WEB页面
- 将二维码包装成成品
- hdu 2084 数塔
- asp.net夜话之十一:web.config详解