第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

要求對于每組數(shù)據(jù)輸出遷移后人口最多的居民點人口最少可能的數(shù)目?

要求對于每組數(shù)據(jù)輸出遷移后人口最多的居民點人口最少可能的數(shù)目?

不負相思意 2022-05-08 08:04:36
時間限制:3000ms單點時限:1000ms內(nèi)存限制:256MB描述公元2411年,人類開始在地球以外的行星建立居住點。在第1326號殖民星上,N個居住點分布在一條直線上。為了方便描述,我們設(shè)第i個居住點的位置是Xi,其中居住著Yi位居民。隨著冬季的到來,一些人口較多的居住點的生態(tài)循環(huán)系統(tǒng)已經(jīng)開始超負荷運轉(zhuǎn)。為了順利度過嚴冬,殖民星上的居民一致同意通過轉(zhuǎn)移到人口較少的居住點來減輕人口眾多的居住點的負荷。遺憾的是,1326殖民星的環(huán)境非常惡劣。在冬季到來前,每個居民點的居民最遠能遷移到距離不超過R的居民點。1326殖民星的居民希望知道,如何安排遷移才能使完成遷移后人口最多的居民點人口最少?注意有可能存在多個居民點位置相同。輸入第一行包含一個整數(shù)T(1 <= T <= 10),代表測試數(shù)據(jù)的組數(shù)。每組數(shù)據(jù)的第一行包含2個整數(shù)N(1 <= N <= 100000)和R(0 <= R <= 10^9)。以下N行每行包含兩個整數(shù),Xi和Yi(0 <= Xi, Yi, <= 10^9)。輸出對于每組數(shù)據(jù)輸出遷移后人口最多的居民點人口最少可能的數(shù)目。樣例輸入35 110 8020 2030 10040 3050 105 1010 8020 2030 10040 3050 105 2010 8050 1020 2030 10040 30樣例輸出1005048求算法思路。
查看完整描述

1 回答

?
小唯快跑啊

TA貢獻1863條經(jīng)驗 獲得超2個贊


//這是我提交的代碼,僅供參考 #include <stdio.h>#include <stdlib.h>#include <math.h> struct Node{    int X;    int Y;    int Y_tmp;    int l;    int r;    int capacity;}node[100001];  int N,R; int cmp(struct Node *a, struct Node *b){    return a->r-b->r;} int Is_Sucess(int middle){    int i,j,start=0;    for(i=0; i<N; i++)    {        node[i].capacity=middle;        j=start;        while(node[i].capacity>0 && node[j].l<=node[i].X && j<N)        {/*          if(node[j].Y_tmp==0)            {                j++;                continue;            }*/            if(node[j].r<node[i].X && node[j].Y_tmp>0)                return 0;            if(node[j].l<=node[i].X && node[j].r>=node[i].X)            {                if(node[i].capacity>=node[j].Y_tmp)                {                    node[i].capacity-=node[j].Y_tmp;                    node[j].Y_tmp=0;                    start=j+1;                }                else                {                    node[j].Y_tmp-=node[i].capacity;                    node[i].capacity=0;                }            }            j++;        }    }    if(node[N-1].Y_tmp>0)        return 0;    return 1;} int Binary_Search(int high, int low){    int i,middle;    while(high!=low)    {        middle=(high+low)/2;        for(i=0; i<N; i++)            node[i].Y_tmp=node[i].Y;        if(Is_Sucess(middle))            high=middle;        else            low=middle+1;    }    return high;} int main(){    int T;    int i,j;    int high;    long long int low;    scanf("%d", &T);    while(T--)    {        scanf("%d%d", &N, &R);        low=0;        high=0;        for(i=0; i<N; i++)        {            scanf("%d%d", &node[i].X, &node[i].Y);            node[i].l=node[i].X-R;            node[i].r=node[i].X+R;            if(high<node[i].Y)                high=node[i].Y;            low+=node[i].Y;        }        qsort(node,N,sizeof(node[0]),cmp);        low=low/N;        high=Binary_Search(high,low);        printf("%d\n",high);    }    system("pause");    return 0;}



查看完整回答
反對 回復(fù) 2022-05-10
  • 1 回答
  • 0 關(guān)注
  • 199 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號