TJOI2013 獎學金 亂搞

2022-05-20 22:55:49 字數 715 閱讀 4734

從\(c\)個二元組\((v,w)\)中選出\(n\)個,使其\(v\)的中位數最大的同時使\(w\)和小於等於\(f\),求這個中位數

有點意思。有點像二分答案的思路,列舉中位數,將原問題轉換為乙個判定問題,貪心選擇中位數之前\(w\)最小的\((n-1)/2\)個,之後\(w\)最小的\((n-1)/2\)個,然後判斷一下是否小於等於\(f\)即可。

使用優先佇列貪心即可。

#include #include #include #define maxn 200002

using namespace std;

int n,c,mx;

priority_queue q;

struct nod a[maxn];

bool cmp(const nod &a, const nod &b)

}sum=0;

while(!q.empty()) q.pop();

for(int i=c;i>=c-n/2+1;--i)

//g[i] >i min cost

for(int i=c-n/2;i>=1;--i)

}for(int i=c-n/2;i>=n/2+1;--i)

if(a[i].w+f[i]+g[i]<=mx)

puts("-1");

return 0;

}

TJOI2013 松鼠聚會

題目描述 草原上住著一群小松鼠,每個小松鼠都有乙個家。時間長了,大家覺得應該聚一聚。但是草原非常大,松鼠們都很頭疼應該在誰家聚會才最合理。每個小松鼠的家可以用乙個點x,y表示,兩個點的距離定義為點 x,y 和它周圍的8個點 x 1,y x 1,y x,y 1 x,y 1 x 1,y 1 x 1,y ...

TJOI2013 攻擊裝置

time limit 10 sec memory limit 128 mb submit 1326 solved 636 submit status discuss 給定乙個01矩陣,其中你可以在0的位置放置攻擊裝置。每乙個攻擊裝置 x,y 都可以按照 日 字攻擊其周圍的 8個位置 x 1,y 2 ...

Tjoi2013 攻擊裝置

description 給定乙個01矩陣,其中你可以在0的位置放置攻擊裝置。每乙個攻擊裝置 x,y 都可以按照 日 字攻擊其周圍的 8個位置 x 1,y 2 x 2,y 1 x 1,y 2 x 2,y 1 x 1,y 2 x 2,y 1 x 1,y 2 x 2,y 1 求在裝置互不攻擊的情況下,最多...