uoj386 UNR 3 鴿子固定器 貪心

2021-08-21 11:22:54 字數 1217 閱讀 1474

【題目鏈結】

【題解】

考慮先把序列按

s s

排序後,將

v' role="presentation" style="position: relative;">v

v從小到大從中刪去,刪去時用包含它的區間更新答案。

為什麼答案一定是一段區間:由於數列中剩下的數

v v

沒有比當前數更小的。用反證法,如果不是一段區間,那麼把當前點替換為區間隔開的點答案不會變劣。

時間複雜度o(

nm2)

' role="presentation" style="position: relative;">o(n

m2)o

(nm2

)【**】

/* - - - - - - - - - - - - - - -

user : vanishd

problem : [unr3day1t1]

points :

- - - - - - - - - - - - - - - */

# include

# define ll long long

# define n 200010

using

namespace

std;

const

int inf = 0x3f3f3f3f, inf = 0x7fffffff;

const ll infll = 0x3f3f3f3f3f3f3f3fll, infll = 0x7fffffffffffffffll;

int read()

while (ch >= '0' && ch <= '9')

return tmp * fh;

}struct nodep[n];

bool cmp(node x, node y)

priority_queue vector

, greater> hp;

int n, m, s, v;

ll ans;

void chkans(ll sum, ll det)

int main()

}else

chkans(now, p[j].s - p[i].s);}}

printf("%lld\n", ans);

return

0;}

uoj386 UNR 3 鴿子固定器

link 似乎很久沒寫題解了 n個物品,每個物品有a,b兩個值,給定a,b,現在最多選其中m個,要求最大化選出的物品中 b權值和的b次方 a極差的a次方 n leq 2 times 10 5,m leq 50.大概全場最早ac的兩人是miaom wzf2000,用了非標算的 神奇的做法 太強辣。按照...

UOJ 308 UNR 2 UOJ拯救計畫

uoj 如果模數很奇怪,我們可以插值一下,設 f i 表示用了 i 種顏色的方案數。然而模 6 這個東西很有意思,6 2 3 所以我們只需要考慮其模 2 和模 3 的結果了。而最終答案的貢獻是 sum k a i f i 當 i ge 3 的時候 6 a k i 所以我們只需要知道 f 0 f 1 ...

uoj308 UNR 2 UOJ拯救計畫

傳送門 題解 考慮列舉用了 i 所學校,那麼貢獻為 cnt i 意思是從 k 所選 i 所出來染色,cnt 為固定顏色順序的染色方案,i 為可以交換學校位置。考慮當 i geq 3 的時候,貢獻含有模數因子6,所以模6為0,相當於沒有貢獻。當 i 1 顯然只有 m 0 有貢獻。對於 m 0 我們特判...