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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

雷达覆盖

發布時間:2025/3/15 编程问答 12 豆豆
生活随笔 收集整理的這篇文章主要介紹了 雷达覆盖 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Description

以雷達心為圓心的半圓形雷達覆蓋范圍有多個點 雷達可旋轉,求最多覆蓋數(含在邊界的)

Input

Output

Sample Input

25 25 3.5------雷達坐標與半徑
7----------點數
25 28-------點坐標
23 27
27 27
24 23
26 23
24 29
26 29
350 200 2.0
5
350 202
350 199
350 198
348 200
352 200
995 995 10.0
4
1000 1000
999 998
990 992
1000 999
100 100 -2.5

Sample Output

3
4
4

分析
先把在半徑之外的點排除
枚舉點作為雷達的分界線,用叉積判斷左右兩邊點數量的多少,找一個最優值。

程序:

#include<iostream> #include<cmath> #include<cstring> using namespace std; double r; int sx,sy,n,nm,ans,x[10001],y[10001],w=0; void work1(); int main() {do{int j,k;cin>>sx>>sy>>r;if (r<0) break;cin>>n;nm=0;ans=0;memset(x,0,sizeof(x));memset(y,0,sizeof(y));for (int i=1;i<=n;i++){cin>>j>>k;if (sqrt((j-sx)*(j-sx)+(k-sy)*(k-sy))<=r){nm++;x[nm]=j;y[nm]=k;}}int l,r,m;for (int i=1;i<=nm;i++){l=0;r=0;for (int j=1;j<=nm;j++){m=(x[i]-sx)*(y[j]-sy)-(y[i]-sy)*(x[j]-sx);if (m>0) r++;else l++;}if (l<r) l=r;if (l>ans) ans=l;}cout<<ans<<endl; }while(w==0);return 0; }

轉載于:https://www.cnblogs.com/YYC-0304/p/9500017.html

總結

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

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