| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 847 人关注过本帖
标题:喷水装置问题
只看楼主 加入收藏
邓士林
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:淮河河畔
等 级:贵宾
威 望:61
帖 子:2392
专家分:13384
注 册:2013-3-3
结帖率:88%
收藏
已结贴  问题点数:20 回复次数:3 
喷水装置问题
喷水装置(二)
时间限制: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。
样例输入
2
2 8 6
1 1
4 5
2 10 6
4 5
6 5
样例输出
1
2


以上是题目描述,下面是我写的,当然测试数据都能通过,但是就是不能AC,链接地址:http://acm.nyist.

代码如下:
#include <iostream>
#include <math.h>
using namespace std;
int main()
{
    int n,w,h,m;
    int count=0;
    float sum=0;
    cin>>n;
    while(n--)
    {
        int a,b,i,j;
        cin>>m>>w>>h;
        int r[1000],x[10004];              //坐标和半径的存储
        for(i=0;i<m;i++)
        {
            cin>>x[i]>>r[i];
        }
        for(i=0;i<m-1;i++)
            for(j=i+1;j<m;j++)
            {
                if(r[i]<r[j])
                {
                    a=r[i];r[i]=r[j];r[j]=a;
                    b=x[i];x[i]=x[j];x[j]=b;
                }
                else if(r[i]==r[j])
                    if(x[i]>x[j])
                    {
                          a=r[i];r[i]=r[j];r[j]=a;
                          b=x[i];x[i]=x[j];x[j]=b;
                    }
            }                                                             //以上为排序,让半径大的拍在前面,如果半径相同,则坐标小的在前面
        if(r[0]>=sqrt(h*h/4+x[0]*x[0]))                                    //继续判断条件
            for(i=0;i<m;i++)
            {
                sum=sqrt(r[i]*r[i]-(h/2)*(h/2))+x[i];
                if(sum>=w){cout<<(i+1)<<endl;break;}
                 else if(i>=m&&sum<w)cout<<0<<endl;
            }
        else cout<<0<<endl;
    }
    return 0;
}
搜索更多相关主题的帖子: 正整数 中心线 草坪 
2013-09-11 00:08
love云彩
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:青藏高原
等 级:贵宾
威 望:53
帖 子:3663
专家分:11416
注 册:2012-11-17
收藏
得分:10 
对于时间复杂度以及内存分配大小,你怎么看

思考赐予新生,时间在于定义
2013-09-11 00:34
邓士林
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:淮河河畔
等 级:贵宾
威 望:61
帖 子:2392
专家分:13384
注 册:2013-3-3
收藏
得分:0 
不熟,不过我知道问题在哪了

Maybe
2013-09-11 11:37
我叫沃恩
Rank: 12Rank: 12Rank: 12
来 自:Asia
等 级:贵宾
威 望:10
帖 子:1234
专家分:3865
注 册:2013-3-29
收藏
得分:10 
那就蹭分,,

因为我是菜鸟,所以应该被骂! 细节+坚持=成功!
2013-09-11 12:56
快速回复:喷水装置问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.043478 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved