codeforces 321 B 排序 二分

2021-09-30 13:27:24 字數 726 閱讀 4216

題意:n個人,每個人有money和friendship,求最大的friendship和,要求所選的人money之差小於d

思路:先按money排序,然後掃一遍,兩個指標l,r記錄當前二分範圍,prem記錄當前所選人中最小的money。

注意:如果二分找到k,a[i].m-d>=a[k].m,當前t就等於a[i].m。r

#include#include#include#include#include#include#include#include#include#include#include#define ll __int64

using namespace std;

const int inf=0x3fffffff;

const int n=100100;

struct node a[n];

ll n,d;

ll b[n];

ll sum[n];

bool cmp(node x,node y)

else

}return l;

}int main()

{ //freopen("d:\\test.txt","r",stdin);

scanf("%i64d%i64d",&n,&d);

for(int i=0; i=a[k].m) t=sum[i]-sum[k];

else t=sum[i]-sum[k-1];

l=k;

//cout<

codeforces 321C 點分治好題

題意 給定一棵樹,讓你對其進行染色,使得任意顏色相同的兩個點之間的路徑上存在等級更高的顏色。思路 我們考慮點分樹的結構,點分樹上的每個節點都對應於乙個邊的集合 經過這個節點的所有邊 點分樹上的父子關係,一棵點分樹上任意乙個節點,以他為根的子樹上的所有點是這個節點路徑集合的端點集合。有了這些結論,這道...

CODEFORCES 535B 解題報告

仍然是水題,但是還是有可以說的地方。主要思路就是dfs可重排列。4,7組成的幸運數字,在n位數字的構造方式有2 n種,而資料是最多9位,則列舉只有512種,n 2的複雜度足矣。只列舉相應位數的4 7排列,前面的個數用2 n累加。只要遵循先選4再選7即可構造字典順序,然後查詢相應數。以下是 可直接ac...

CodeForces 816B(區間計數)

codeforces 816b 題意 給出n個區間和乙個k值,再給出q次詢問,每次詢問給出乙個區間,要求這個區間中的數在開始的n區間中出現次數不少於k次的數目。解法 將n個區間的每個數每出現一次就加一,最後統計q詢問的區間中不小於k的數的個數。寫這題主要是想講乙個常用的區間更新的方法,其實這題也可以...