2017-03-18
題目:這道題一般能看出來是並查集。
但是,i、j的範圍似乎有一點鬼畜。。。。。。
但是n的範圍還是比較友好的。
所以,我們要用的一招叫做離散化。
離散化,針對只在乎大小,而不在乎具體值的資料使用。
如果不會離散化的話,問度娘或點_
1 #include2 #include3 #include4 #include5戳我》_<using
namespace
std;67
struct
nodea[100010
];11
12int n,t,c[200210],tot,fa[200210
];13
intsize;
14bool yes=true;15
16int find(int
x)20
21int
main()
35 sort(c+1,c+1+tot);
36 size=unique(c+1,c+1+tot)-c-1;37
for (int i=1;i<=n;++i)
41for (int i=1;i<=n;++i)46}
47for (int i=1;i<=n;++i)54}
55}56if (yes) cout<
yes"
<
57else cout<
<
59return0;
60 }
騙分真神奇,暴力出奇蹟。
洛谷 P1955 NOI2015 程式自動分析
目錄 傳送門 首先看到這種沙雕範圍 109109 直接選擇離散化,然後貌似就是簡單直接的並查集了 我們先將相等關係的 x x y role presentation y y進行合併,然後看不相等關係中的 x x y role presentation y y,如果他們兩個的祖先是一樣的,也就是之前已...
洛谷P1955 程式自動分析 並查集 離散
給出n nn個變數之間的關係 等或不等 求這些活能否全部是真話。思路 考慮並查集,先將讀入的排序,給出相等關係的在前,不等關係的在後。那麼對於所有相等的兩個變數,我們將它們化為同一集合。之後對於不相等的變數,我們看看這兩個變數是否在同一集合內,如果在同一集合內,說明這兩個變數是相等的,所以肯定不成立...
洛谷P1955 程式自動分析 並查集 離散
給出nn 個變數之間的關係 等或不等 求這些活能否全部是真話。思路 考慮並查集,先將讀入的排序,給出相等關係的在前,不等關係的在後。那麼對於所有相等的兩個變數,我們將它們化為同一集合。之後對於不相等的變數,我們看看這兩個變數是否在同一集合內,如果在同一集合內,說明這兩個變數是相等的,所以肯定不成立 ...