four
来源:互联网 发布:为知笔记vip破解版 编辑:程序博客网 时间:2024/04/30 05:23
题目:有一块草坪,横向长w,纵向长为h,在它的橫向中心线上不同位置处装有n(n<=10000)个点状的喷水装置,每个喷水装置i喷水的效果是让以它为中心半径为Ri的圆都被润湿。请在给出的喷水装置中选择尽量少的喷水装置,把整个草坪全部润湿。
个人理解:其中left小于0且right值对大的那个节点肯定是第一个需要的喷水器,这样当该喷水器去掉之后,该喷水器的边缘到草坪的右边缘就构成了一个新的问题,再重复上面的步骤即可
代码:#include<stdio.h>#include<math.h>typedef struct pen{ double left,right;//左右边界 }qiang;int main(){ qiang a[10004] = {0}; int N; scanf("%d",&N); for(int i=0;i<N;i++){ int n,w,h; scanf("%d%d%d",&n,&w,&h); for(int i=0;i<n;i++){ int x,r; scanf("%d%d",&x,&r); double z = 0; if(r>h/2.0) z = sqrt(r*r-h*h/4.0); a[i].left=x-z; a[i].right=x+z; } double b=0,max=0; int num=0,flag=0; while(b<w){ for(int j=0;j<n;j++){ if(a[j].left<=b && a[j].right>=b){ max= max>a[j].right?max:a[j].right; } } if(b == max){ printf("%d\n",0); flag = 1; break; } b = max; num++; } if(!flag) printf("%d\n",num); }}
阅读全文
0 0
- four:
- four
- four
- four friends
- unit four
- Four ugliness
- Four Sum
- Twenty-four
- four数组
- hibernate four
- Week Four
- code fragment Four from
- The four number game
- Snow For Four Years
- gang of four resources
- The Four Quadrant Leadership
- Ubuntu four Components
- Layer Four Traceroute
- 欢迎使用CSDN-markdown编辑器
- UVA--129
- 字符串匹配的BF算法和KMP算法学习
- leetcode 20. Valid Parentheses
- Linux Kernel PANIC(二)--Hard Panic/Aieee实例分析
- four
- JVM查看命令
- 01_Python特征
- android检测不到手机设备
- 02_Python文件类型
- java“+”号
- JSF复习系列(2)--迭代器的直观体现dataTable使用详解
- iOS 异常捕获学习
- 03_Python变量