NOI2015 程式自動分析(並查集)

2021-09-05 13:05:56 字數 838 閱讀 3500

傳送門

開始想錯了,寫了個種類並查集

結果發現可能會有很多個種類

便直接離線做

先把所有相等的mer

ge

merge

merg

e在一起

然後再處理不等的

如果有不等關係的在同乙個聯通塊中,顯然是不行的

不想離散化便直接上map

mapma

p了m ap

mapma

p**好啊

#include

#include

using

namespace std;

inline

intread()

const

int n=

1000006

;tr1::unordered_map<

int,

int> fa;

struct oprp[n]

;int flag,n,cnt;

inline

intfind

(int x)

intmain()

else p[

++cnt]

.u=u,p[cnt]

.v=v;

}int i;

for(i=

1;i<=cnt;

++i)

if(i==cnt+

1)cout<<

"yes"

<<

'\n'

;else cout<<

"no"

<<

'\n';}

}

NOI2015程式自動分析 並查集

在實現程式自動分析的過程中,常常需要判定一些約束條件是否能被同時滿足。考慮乙個約束滿足問題的簡化版本 假設 x1,x2,x3,代表程式 現的變數,給定 n 個形如 xi xj 或 xi xj 的變數相等 不等的約束條件,請判定是否可以分別為每乙個變數賦予恰當的值,使得上述所有約束條件同時被滿足。例如...

NOI 2015 程式自動分析

description 在實現程式自動分析的過程中,常常需要判定一些約束條件是否能被同時滿足。考慮乙個約束滿足問題的簡化版本 假設x1,x2,x3,代表程式中出現的變數,給定n個形如xi xj或xi xj的變數相等 不等的約束條件,請判定是否可以分別為每乙個變數賦予恰當的值,使得上述所有約束條件同時...

NOI 2015 程式自動分析

我覺得是noi史上最簡單的題目了,沒有之一。我們把相等的變數合併起來,然後最後在掃一遍不同的變數是否在乙個塊裡。可能變數很大,離散化一下。uojluogu bzoj cogs include include include using namespace std const int maxm 1e7...