• 喷水装置 解


    现有一块草坪,长为20米,宽为2米,要在横中心线上放置半径为Ri的喷水装置,每个喷水装置的效果都会让以它为中心的半径为实数Ri(0<Ri<15)的圆被湿润,这有充足的喷水装置i(1<i<600)个,并且一定能把草坪全部湿润,你要做的是:选择尽量少的喷水装置,把整个草坪的全部湿润。

     
    输入
    第一行m表示有m组测试数据
    每一组测试数据的第一行有一个整数数n,n表示共有n个喷水装置,随后的一行,有n个实数ri,ri表示该喷水装置能覆盖的圆的半径。
    输出
    输出所用装置的个数
    样例输入
    2
    5
    2 3.2 4 4.5 6 
    10
    1 2 3 1 2 1.2 3 1.1 1 2
    样例输出
    2
    5

    #include<stdio.h>
    #include<math.h>
    int main()
    {
    int n;
    scanf("%d",&n);
    while(n--)
    {
    int x,i,j;
    double s=0,t;
    scanf("%d",&x);
    double a[x]; ////循环中定义数组 用多少定义多少  
    for(i=0;i<x;i++)
    scanf("%lf",&a[i]);//输入喷水装置半径
    for(i=0;i<x-1;i++)
    for(j=i;j<x;j++)
    {
    if(a[i]<a[j])////从大到小排序
    {
    t=a[i];
    a[i]=a[j];
    a[j]=t;
    }
    }


    i=0;
    double k=0;
    while(s<20)  ///s是长度
    {
    k=s;
    s=s+(sqrt(a[i]*a[i]-1))*2;////要想完全覆盖长方体  圆至少要越过长方体的端点   
    i=i+1;
    }
    printf("%d ",i);
    }
    }

  • 相关阅读:
    NIO编程实现步骤
    NIO简介
    JavaReflect专题学习一
    mqtt报错:The PUBREC PacketId 5 is inuse
    git+码云
    python 随笔
    odoo openErp 随笔
    postgreSQL 随笔
    高精地图开放项目,欢迎Join in!
    Jenkins属性持久化 版本号自动递增
  • 原文地址:https://www.cnblogs.com/wshyj/p/6125015.html
Copyright © 2020-2023  润新知