並查集合並好神的一道題。學到了map替代sort+unique的姿勢。借鑑monster__yi這位神犇的題解!%%%%%
#include#include#include#include#include#includeusing namespace std;1515 明辨是非#define rep(i,s,t) for(int i=s;i<=t;i++)
#define dwn(i,s,t) for(int i=s;i>=t;i--)
#define clr(x,c) memset(x,c,sizeof(x))
int read()
while(isdigit(c)) x=x*10+c-'0',c=getchar();
return x*f;
} const int nmax=2e5+5;
int fa[nmax];
sets[nmax];
mapm;
int find(int x)
int main()else
} }return 0;
}
基準時間限制:1 秒 空間限制:131072 kb 分值: 160 難度:6級演算法題
收藏關注給n組操作,每組操作形式為x y p。
當p為1時,如果第x變數和第y個變數可以相等,則輸出yes,並限制他們相等;否則輸出no,並忽略此次操作。
當p為0時,如果第x變數和第y個變數可以不相等,則輸出yes,並限制他們不相等 ;否則輸出no,並忽略此次操作。
input
輸入乙個數n表示操作的次數(n<=1*10^5)output接下來n行每行三個數x,y,p(x,y<=1*10^8,p=0 or 1)
對於n行操作,分別輸出n行yes或者noinput示例
3output示例1 2 1
1 3 1
2 3 0
yesyesno
51Nod 1515 明辨是非
給n組操作,每組操作形式為x y p。當p為1時,如果第x變數和第y個變數可以相等,則輸出yes,並限制他們相等 否則輸出no,並忽略此次操作。當p為0時,如果第x變數和第y個變數可以不相等,則輸出yes,並限制他們不相等 否則輸出no,並忽略此次操作。這是一道很經典的題目。如果只有強制相同集合的話...
51nod1515明辨是非
1515 明辨是非 基準時間限制 1 秒 空間限制 131072 kb 分值 160 難度 6級 給n組操作,每組操作形式為x y p。當p為1時,如果第x變數和第y個變數可以相等,則輸出yes,並限制他們相等 否則輸出no,並忽略此次操作。當p為0時,如果第x變數和第y個變數可以不相等,則輸出ye...
51nod 1515 明辨是非
給n組操作,每組操作形式為x y p。當p為1時,如果第x變數和第y個變數可以相等,則輸出yes,並限制他們相等 否則輸出no,並忽略此次操作。當p為0時,如果第x變數和第y個變數可以不相等,則輸出yes,並限制他們不相等 否則輸出no,並忽略此次操作。輸入乙個數n表示操作的次數 n 1 10 5 ...