AcWing 250 磁力快(分塊)

2022-05-11 05:04:51 字數 1512 閱讀 7889

題目傳送門

在一片廣袤無垠的原野上,散落著n塊磁石。

每個磁石的性質可以用乙個五元組(x,y,m,p,r)描述,其中x,y表示其座標,m是磁石的質量,p是磁力,r是吸引半徑。

若磁石a與磁石b的距離不大於磁石a的吸引半徑,並且磁石b的質量不大於磁石a的磁力,那麼a可以吸引b。小取酒帶著一塊自己的磁石l來到了這片原野的(x0,y0)處,我們可以視磁石l的座標為(x0,y0)。小取酒手持磁石l並保持原地不動,所有可以被l吸引的磁石將會被吸引過來。

在每個時刻,他可以選擇更換任意一塊自己已經獲得的磁石(當然也可以是自己最初攜帶的l磁石)在(x0,y0)處吸引更多的磁石。

小取酒想知道,他最多能獲得多少塊磁石呢?

輸入格式

第一行五個整數x0,y0,pl,rl,n,表示小取酒所在的位置,磁石l磁力、吸引半徑和原野上散落磁石的個數。

接下來n行每行五個整數x,y,m,p,r,描述一塊磁石的性質。

輸出格式

輸出乙個整數,表示最多可以獲得的散落磁石個數(不包含最初攜帶的磁石l)。

資料範圍

\(1≤n≤250000, −10^9≤x,y≤10^9, 1≤m,p,r≤10^9\)

輸入樣例:

0 0 5 10 5

5 4 7 11 5

-7 1 4 7 8

0 2 13 5 6

2 -3 9 3 4

13 5 1 9 9

輸出樣例:
3
將磁石按照質量排序,分成t塊,然後對於乙個磁石一定有乙個k,使得前k-1塊所有的磁石的質量都小於它的磁力,k+1塊之後的磁石質量都比它磁力大,而對塊內按照距離排序之後,只需要挨個掃就可以了,掃過的標記、加入佇列,調整區間。但對於第k塊,因為不是所有的質量都小於當前磁塊的磁力,所以要全部掃一遍,直到距離大於磁力半徑,該塊不能被調整區間

#include using namespace std;

const int n = 250010;

struct nodea[n];

int x0,y,n;

int l[n],r[n],v[n];

double s(int x)

bool cmp(node a,node b)

bool cmp2(node a,node b)

int main()

int t = sqrt(n);

for(int i=1;i<=t;i++)

if(r[t] < n)

sort(a+1,a+n+1,cmp);

for(int i=1;i<=t;i++)

int res = 0;

queueq;

q.push(0);

while(!q.empty())else

}else

}if(flag)l[i] = j;//不是第k塊就調整左座標點}}

printf("%d\n",res-1);//減去原始的磁石

return 0;

}

mx250 計算能力 分析mx250顯示卡什麼級別

熟悉顯示卡的朋友對於英偉達顯示卡一定不陌生,其中mx250顯示卡就是英偉達顯示卡之一,它是英偉達於2019年第一季度發布的一款用於膝上型電腦的下顯示卡,用於替代之前的mx150顯示卡。那mx250顯示卡什麼級別呢?下面小風就跟大家聊聊mx250顯示卡。mx250顯示卡是英偉達於2019年第一季度發布...

mx250是什麼 分析mx250顯示卡什麼級別

mx250顯示卡是英偉達於2019年第一季度發布的一款用於膝上型電腦的下顯示卡,用於替代之前的mx150顯示卡。是一款移動筆記本平台低功耗辦公顯示卡,它的特點是功耗低,主打超級本裝置。mx250採用的是帕斯卡架構,基本上就是在上一代的mx150的基礎上進行了小幅度的公升級 如果是桌面級顯示卡陣營中,...

springJSR 250註解學習

spring與jsr 250註解學習 1.參考書1 精通 spring 2.x 企業應用開發精解 前言 要使用註解,spring 的配置檔案得到了極大的簡化,只需要加入下面兩個命名空間即可 base package testspring.main 那是不是我們有了註解了以後就可以完全不使用xml配置...