91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何將圓域問題轉化為區間求交集的問題

發布時間:2021-10-13 15:24:12 來源:億速云 閱讀:148 作者:iii 欄目:編程語言

這篇文章主要介紹“如何將圓域問題轉化為區間求交集的問題”,在日常操作中,相信很多人在如何將圓域問題轉化為區間求交集的問題問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”如何將圓域問題轉化為區間求交集的問題”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

將圓域問題轉化為區間求交集的問題。
(以右端點為判斷準則——更容易覆蓋下一段)

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>

using namespace std;

const int N=1010;
int n,d;

struct Segment{
    double l,r;
    //重載運算符
    bool operator< (const Segment& t)const{
        return r<t.r;
    }
}seg[N];

int main(){
    bool failed = false;
    cin>>n>>d;
    for(int i=0;i<n;i++) {
        int x,y;
        scanf("%d%d",&x,&y);
        //如果小島距離大于d 那么無解
        if(y>d) failed=true;
        else{
            //區間長度
            double len=sqrt(d*d-y*y);
            seg[i].l=x-len;
            seg[i].r=x+len;
        }
    }
    if(failed) puts("-1");
    else{
        //區間右端點排序
        sort(seg,seg+n);
        int res=0;
        double last=-1e20;
        for(int i=0;i<n;i++){
            //如果當前最后一個點小于當前區間的左端點
            if(last<seg[i].l){
                res++;
                //將當前最后一個點置為當前區間的右端點
                last=seg[i].r;
            }
        }
        cout<<res<<endl;
    }
    
    return 0;
}

到此,關于“如何將圓域問題轉化為區間求交集的問題”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

台南市| 陆川县| 西平县| 呼图壁县| 朝阳县| 巢湖市| 定兴县| 城步| 洪湖市| 万荣县| 蒲江县| 新乡市| 武功县| 嘉善县| 美姑县| 金平| 石狮市| 江北区| 新竹市| 英吉沙县| 宜兴市| 聊城市| 吉首市| 永善县| 望谟县| 南江县| 天门市| 进贤县| 通化县| 报价| 福贡县| 上思县| 德保县| 郯城县| 克山县| 商洛市| 阿坝县| 蚌埠市| 白城市| 定兴县| 如东县|