日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【贪心】雷达问题

發布時間:2024/6/30 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【贪心】雷达问题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題目描述

張琪曼等人用時空雷達定位李旭琳所在的空間位置。如圖7.3所示,時空雷達裝在一條直線上,直線上方是空間海洋,每個人在空間海洋的位置就如同大海中的島嶼,這些人的位置已知,每一個雷達的掃描范圍是一個半徑為d的圓形區域,問最少需要多少個雷達覆蓋所有的人(島嶼)。

?

輸入

輸入包括多組測試數據,每組測試數據第一行為兩個整數n (1≤n≤1000) 和 d,即島嶼數和雷達掃描半徑。隨后n行每行兩個整數表示島嶼坐標。每組測試數據以空行間隔,所有測試數據以0 0結束。

?

輸出

輸出最少需要安裝雷達數,每組一行。若無解以-1表示。

?

樣例輸入

3 2
1 2
-3 1
2 1

1 2
0 2

0 0

樣例輸出

Case 1: 2
Case 2: 1

#include <iostream> #include <string> #include <cstdio> #include <cmath> #include <cstring> #include <algorithm> #include <vector> #include <queue> #include <deque> #include <map> #define range(i,a,b) for(int i=a;i<=b;++i) #define LL long long #define rerange(i,a,b) for(int i=a;i>=b;--i) #define fill(arr,tmp) memset(arr,tmp,sizeof(arr)) using namespace std; pair<double,double>aa[115]; int n,d; void init(){} void swap(int&a,int&b){int tmp=a;a=b;b=tmp; } bool cmp(pair<double,double>a,pair<double,double>b){return a.second<b.second; } void solve(){int cas=0;while(cin>>n>>d,n,d){bool flag=true;double x,y;range(i,0,n-1){cin>>x>>y;if(!flag)continue;if(y>d){flag=false;continue;}aa[i].first=(x-sqrt(d*d-y*y));aa[i].second=(x+sqrt(d*d-y*y));}cout<<"Case "<<++cas<<": ";if(!flag){cout<<-1<<endl;continue;}sort(aa,aa+n,cmp);double tmp=-123845;int ans=0;range(i,0,n-1)if(tmp<aa[i].first){++ans;tmp=aa[i].second;}cout<<ans<<endl;} } int main() {init();solve();return 0; } View Code

?

轉載于:https://www.cnblogs.com/Rhythm-/p/9344574.html

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的【贪心】雷达问题的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。