D Parity game離散化 帶權並查集

2021-10-21 00:19:35 字數 1293 閱讀 3284

帶權並查集,和那個how many answer are wrong差不多,衝啊!

嗯?怎麼寫了一發後mle了????

哦哦,原來還要離散化!

嗯?怎麼離散化後還是wa?

哦哦,原來我的ans沒有初始值為k(每乙個詢問都是正確的情況)

嗚嗚嗚我好傻

就是給你乙個n(0帶權並查集啊,只不過n太大了,存不下,得先離散化

離散化,將數存到陣列裡,排序 -> 去重 -> 二分查詢

排序就sort就行,去重有個 unique函式,二分查詢就lower_bound

然後就老帶權並查集了,區間的左端要開區間(類似字首似的 喵喵喵??)

#include

using

namespace std;

typedef

long

long ll;

const

int inf =

0x3f3f3f3f

;const ll inf =

0x3f3f3f3f3f3f3f3f

;#define pq priority_queue

#define eps 1e-10

#define pi acos(-1.0)

int n, k;

int ok, ans;

int cnt;

const

int maxn =

20005

;char s[maxn][10

];int l[maxn]

;int a[maxn]

, b[maxn]

, fa[maxn]

, d[maxn]

;int

find

(int x)

void

init()

}void

union

(int x,

int y,

int val)

else}}

intmain()

sort

(l, l + cnt)

;init()

; cnt =

unique

(l, l + cnt)

- l;

ans = k;

for(

int i =

1; i <= k; i++)}

else}}

printf

("%d\n"

, ans)

;return0;

}

codeforces 940F 離散化 帶修莫隊

折騰了一下午的一道題 算是徹底明白了莫隊的本質 這題難點在於怎麼構造o 1 轉移 選擇用兩個陣列 乙個v陣列 記錄出現次數為i次的數有多少個 乙個num陣列 記錄i這個數出現的次數 這樣就可以實現o 1 轉移 其實這樣構造有乙個地方不好處理 如何o 1 處理出當前詢問的答案 後來造了一些資料發現直接...

poj 1733 帶權並查集 離散化

思路 這題一看就想到要用並查集做了,不過一看資料這麼大,感覺有點棘手,其實,我們仔細一想可以發現,我們需要記錄的是出現過的節點到根節點的1個奇偶性,這與區間端點的大小並沒有關係,於是想到我們可以用map對映即可,這樣就解決了大資料了。此外,如果0表示出現偶數個1,1表示出現奇數個1,然後就是向量偏移...

離散化問題

題目傳送 uvalive 4127 the sky is the limit 大白書離散化簡單題。找了半天錯誤,居然是少輸出乙個空行。頓時感覺自己萌萌噠。其中計算幾何是套的之前留下的模板。ac include include include include include include inclu...