明辨是非 51Nod 1515

2021-09-11 18:13:22 字數 803 閱讀 4301

注意這題跟種類並查集不沾邊 因為a!=b&&b!=c推不出a==c

對於每個集合u 把所有與u不等的集合v1 v2...都存入乙個vector 在合併u與v時 對其中vector元素較少的乙個進行遍歷 判斷是否包含另乙個集合 即啟發式合併

#include #include #include #include using namespace std;

#define pb push_back

const int maxn=1e5+10;

struct node

;node order[maxn];

vector pre[2*maxn];

int ary[2*maxn],f[2*maxn];

int n,len;

int getf(int p)

int main()

sort(ary+1,ary+2*n+1);

len=unique(ary+1,ary+2*n+1)-ary-1;

for(i=1;i<=n;i++)

for(i=1;i<=len;i++)

for(i=1;i<=n;i++)

for(j=0;jif(j==pre[fy].size())

f[fy]=fx;

printf("yes\n");

}else printf("no\n");

}else printf("yes\n");

} else

else printf("no\n");

} }return 0;

}

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 ...