time:2016.06.09
author:xiaoyimi
傳送門ps
這段時間在狂補文化課,10天就碰過一次鍵盤,結果回來發現連快速讀入都敲不對了233
接下來一段時間仍保持這種狀態了……
思路:
r2唯一可做的一道題?
在學校弄了個30分做法
回來一交a了……
感覺分解質因數的方法高大上啊有木有 su
m[x]
表示x是其所在集合的代表元素fa[x]的幾分之幾(所以su
m[fa
[x]]
=1,如果w[
fa[x
]]w[
x]=a
b ,那麼sum[x]=ba
) 詢問判斷:如果u,v在同一集合裡直接判斷即可,反之將兩者合併
合併思路:如果我們要合併u,v兩個元素所在集合且uv
=xy ,那麼我們需要解決的就是fa[u],fa[v]之間的數量關係,讓su
m[fa
[u]]
=sum
[v]∗
xsum
[u]∗
y 即可
find操作:先讓fa
[x] 合併到乙個新集合裡,這時su
m[fa
[x]]
已經更新過了,只要讓su
m[x]
=sum
[x]∗
sum[
fa[x
]]就行了
(以上一些式子的推導很簡單,我就不列過程了)
注意:
暫無 **:
#include
#include
#include
#include
using
namespace
std;
int t,n,m;
int fa[1003];
double sum[1003];
int in()
int find(int x)
void work()
if (flag) puts("no");
else
puts("yes");
}main()
並查集,帶權並查集
題意 ignatius過生日,客人來到,他想知道他需要準備多少張桌子。然而一張桌子上面只能坐上相互熟悉的人,其中熟悉可定義成為a與b認識,b與c認識,我們就說a,b,c相互熟悉 例如a與b熟悉and b與c熟悉,d與e熟悉,此時至少需要兩張桌子。輸入 t表示樣例個數,n表示朋友個數,朋友從1到n編號...
BZOJ 1202 帶權並查集
1202 hnoi2005 狡猾的商人 description 刁奼接到乙個任務,為稅務部門調查一位商人的賬本,看看賬本是不是偽造的。賬本上記錄了n個月以來的收入情況,其中第i 個月的收入額為ai i 1,2,3 n 1,n 當 ai大於0時表示這個月盈利ai 元,當 ai小於0時表示這個月虧損ai...
帶權並查集 bzoj 1202
time limit 10 sec memory limit 162 mb submit 1745 solved 837 submit status discuss 刁奼接到乙個任務,為稅務部門調查一位商人的賬本,看看賬本是不是偽造的。賬本上記錄了n個月以來的收入情況,其中第i 個月的收入額為ai ...