POJ 1328 贪心
来源:互联网 发布:西安公路研究院java 编辑:程序博客网 时间:2024/05/22 07:46
题意:海中有n个岛 有一种半径为d的雷达 求最少在岸边安几个雷达即可扫描到所有的岛
很简单的题,贪心算法
对每个小岛求出海边最右边能扫描到小岛的位置(p,0)
按p值对小岛排序
贪心 每次对最左边的未安置雷达的位置(p,0)安置雷达
很简单的题,贪心算法
对每个小岛求出海边最右边能扫描到小岛的位置(p,0)
按p值对小岛排序
贪心 每次对最左边的未安置雷达的位置(p,0)安置雷达
#include<cstdio>#include<algorithm>#include<cmath>using namespace std;#define M 1005int n,id;double d;bool bans;struct Node{double x,y;double p;bool is_cover;bool operator < (const Node &a)const{return p<a.p;}void read(){scanf("%lf%lf",&x,&y);if(y>d){bans=false;}p=x+sqrt(d*d-y*y);is_cover=false;}}a[M];void read(){int i,x,y;for(i=0;i<n;i++){a[i].read();}sort(a,a+n);}void cal(){int ans=0;int i,j;for(i=0;i<n;i++){if(!a[i].is_cover){a[i].is_cover=true;ans++;for(j=i+1;j<n;j++){if(!a[j].is_cover){if( ( (a[j].x-a[i].p) * (a[j].x-a[i].p) + a[j].y*a[j].y ) <= d*d){a[j].is_cover=true;}}}}}printf("Case %d: %d\n",++id,ans);}int main(){id=0;while(~scanf("%d%lf",&n,&d)){bans=true;if(n==0&&d==0){break;}read();if(bans){ cal();}else{printf("Case %d: -1\n",++id);}}return 0;}
- POJ 1328 贪心
- poj 1328 贪心
- Poj 1328 贪心
- POJ 1328(贪心)
- poj 1328 贪心
- POJ 1328 贪心
- POJ-1328(贪心算法)
- POJ 1328 贪心算法
- poj.1328贪心
- poj 1328 贪心
- poj 1328 贪心
- poj 1328 贪心 水题
- poj 1328(贪心)
- POJ 1328(贪心)
- poj 1328 贪心
- POJ 1328(排序+贪心)
- poj 1328 贪心
- POJ 1328 贪心
- datatype misalignment我的原因是内存溢出太严重,大多数是字节对齐问题
- zoj 3213 Beautiful Meadow 插头dp
- VC的路径常识
- C和C++混合编程(error C2059: syntax error : 'string')
- 2009年阿里巴巴C++笔试题+解析
- POJ 1328 贪心
- 给在读研究生+未来要读研同学们的一封受益匪浅的信
- Quartus II中FPGA管脚的分配及保存方法
- GCC Spec修改N例
- hdu 2825 AC自动机+状压dp
- Hibernate学习笔记(六)【映射继承关系】
- Ubuntu下搭建Android开发环境
- Lua - dofile() , require()
- 10 个简单的 WordPress 技巧