【題目鏈結】
【題解】
考慮先把序列按
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 我們特判...