喷水装置(一) nyoj 6 && 喷水装置(二)NYOJ_12
来源:互联网 发布:建筑平面设计软件 编辑:程序博客网 时间:2024/04/19 04:52
喷水装置(一)
时间限制:3000 ms | 内存限制:65535 KB
难度:3
- 描述
- 现有一块草坪,长为20米,宽为2米,要在横中心线上放置半径为Ri的喷水装置,每个喷水装置的效果都会让以它为中心的半径为实数Ri(0<Ri<15)的圆被湿润,这有充足的喷水装置i(1<i<600)个,并且一定能把草坪全部湿润,你要做的是:选择尽量少的喷水装置,把整个草坪的全部湿润。
- 输入
- 第一行m表示有m组测试数据
每一组测试数据的第一行有一个整数数n,n表示共有n个喷水装置,随后的一行,有n个实数ri,ri表示该喷水装置能覆盖的圆的半径。 - 输出
- 输出所用装置的个数
- 样例输入
252 3.2 4 4.5 6 101 2 3 1 2 1.2 3 1.1 1 2
- 样例输出
25
#include <stdio.h>#include <stdlib.h>#include <math.h>int cmp(const void *a,const void *b){return *(double *)b >*(double *)a ? 1 : -1;}int main(){int n;scanf("%d",&n);while(n--){int m,i;double a[600];scanf("%d",&m);for(i=0;i<m;i++){scanf("%lf",&a[i]);//printf("%2.lf",a[i]);}qsort(a,m,sizeof(double),cmp);double sum=0.0;int t=0;for(i=0;i<m;i++){sum+=sqrt(a[i]*a[i]-1);t++;if(sum>=10)break;}printf("%d\n",t);}return 0;}
喷水装置(二)时间限制:3000 ms | 内存限制:65535 KB难度:4描述 有一块草坪,横向长w,纵向长为h,在它的橫向中心线上不同位置处装有n(n<=10000)个点状的喷水装置,每个喷水装置i喷水的效果是让以它为中心半径为Ri的圆都被润湿。请在给出的喷水装置中选择尽量少的喷水装置,把整个草坪全部润湿。输入 第一行输入一个正整数N表示共有n次测试数据。 每一组测试数据的第一行有三个整数n,w,h,n表示共有n个喷水装置,w表示草坪的横向长度,h表示草坪的纵向长度。 随后的n行,都有两个整数xi和ri,xi表示第i个喷水装置的的横坐标(最左边为0),ri表示该喷水装置能覆盖的圆的半径。输出 每组测试数据输出一个正整数,表示共需要多少个喷水装置,每个输出单独占一行。 如果不存在一种能够把整个草坪湿润的方案,请输出0。样例输入22 8 61 14 52 10 64 56 5样例输出 1 2
#include <stdio.h>#include <stdlib.h>#include <math.h>struct Node{double lef;double rig;}s[10001];int cmp(const void *a, const void *b){Node * c = (Node *)a;Node * d = (Node *)b;if(c->lef > d->lef){return 1;}else{return -1;}}int main(){int n,w,h,t;scanf("%d",&t);while(t--){scanf("%d%d%d",&n,&w,&h);int i,x,r,t;for(i=0;i<n;i++){scanf("%d%d",&x,&r);if(r<h/2) continue;t = sqrt(r*r-h/2*h/2);s[i].lef = x - t;s[i].rig = x + t;}int ans = 0 ,f = 1;double sum = 0, max = 0;qsort(s,n,sizeof(s[0]),cmp);while(sum<w){max = 0;for(i=0;i<n;i++){if(s[i].lef<=sum && max<s[i].rig-sum){max = s[i].rig - sum;}}if(max==0){f = 0;break;}ans ++ ;sum += max;}if(f)printf("%d\n",ans);else printf("0\n");}return 0;}
0 0
- 喷水装置(一) nyoj 6 && 喷水装置(二)NYOJ_12
- nyoj_12 喷水装置(二)
- nyoj_12 _喷水装置(二)
- NYOJ 6 - 喷水装置(一)&&NYOJ 12 - 喷水装置(二)
- nyoj 喷水装置(二)
- NYoj-喷水装置(二)
- NYOJ - 喷水装置(二)
- 喷水装置(二) nyoj
- NYOJ 喷水装置(二)
- NYOJ 喷水装置(一)
- NYOJ 喷水装置(一)
- NYOJ喷水装置(一)
- NYOJ~喷水装置(一)
- 喷水装置(一) nyoj
- NYOJ 喷水装置(一)
- nyoj喷水装置(一)
- nyoj-喷水装置(一)
- nyoj-喷水装置(一)
- Web.xml配置详解
- 51nod 1413:权势二进制
- 线段树之HDU1166 敌兵布阵
- 最小生成树 Prime算法
- js 浮动窗效果
- 喷水装置(一) nyoj 6 && 喷水装置(二)NYOJ_12
- nginx安装
- 移动鼠标显示坐标及退出
- SQL Server 2008数据库创建用户只读权限的两种方式
- 7大未来Web设计趋势
- swift - The Builder Pattern
- 进程间通信-信号量
- CSS3实现的一批hover特效
- 如何用PHPExcel读取超大excel文件