演算法複習 - AcWing - 資料結構
237. 程式自動分析
一開始用種類並查集調了半天,,,但是這並不是要分為兩類啊喂!
A!=B, B!=C 不能推出A=C
因為是離線,正確的思路:
(0)資料太大,離散化
(1)先把已知的相等情況處理完
(2)對於不相等的情況,如果他們已經在同一個並查集裡,則出錯
int f[MX];
vector<pair<int,pair<int,int>>>v;
int find(int x)
{
return x==f[x]?x:f[x]=find(f[x]);
}
void solve()
{
int n;cin>>n;
v.clear();
vector<int>tmp;
rpp(i,n)
{
int x,y,z;cin>>x>>y>>z;
v.push_back(make_pair(1-z,make_pair(x,y)));
tmp.push_back(x),tmp.push_back(y);
}
map<int,int>id;
int cnt=0;
for(auto x:tmp)
{
if(id[x]) continue;
id[x]=++cnt;
}
n=cnt;
sort(all(v));
int flag=0;
rpp(i,n) f[i]=i;
for(auto op:v)
{
int x=id[op.second.first],y=id[op.second.second],z=op.first;
int fx=find(x),fy=find(y);
if(z==0) f[fx]=fy;
else if(fx==fy) {flag=1;break;}
}
if(!flag) cout<<"YES\n";
else cout<<"NO\n";
}
相關文章
- Acwing Arithmetic Learning:資料結構(2)資料結構
- 資料結構與演算法學習-複雜度分析資料結構演算法複雜度
- 資料結構與演算法——複雜度分析資料結構演算法複雜度
- 資料結構與演算法整理總結---演算法複雜度資料結構演算法複雜度
- 02142資料結構導論複習筆記資料結構筆記
- 資料 結構客觀題複習題集
- 資料結構與演算法——時間複雜度資料結構演算法時間複雜度
- 資料結構 之 演算法時間複雜度資料結構演算法時間複雜度
- 《資料結構與演算法之美》學習筆記之複雜度資料結構演算法筆記複雜度
- 學習資料結構與演算法心得資料結構演算法
- 資料結構與演算法-資料結構(棧)資料結構演算法
- 資料結構與演算法-複雜度分享&大 O 演算法資料結構演算法複雜度
- 資料結構與演算法:演算法的時間複雜度資料結構演算法時間複雜度
- leetcode演算法資料結構題解---資料結構LeetCode演算法資料結構
- 資料結構與演算法學習總結--遞迴資料結構演算法遞迴
- 資料結構與演算法學習-連結串列下資料結構演算法
- 資料結構與演算法學習-連結串列上資料結構演算法
- 資料結構:初識(資料結構、演算法與演算法分析)資料結構演算法
- 《資料結構與演算法之美》資料結構與演算法學習書單 (讀後感)資料結構演算法
- 資料結構學習筆記-佛洛依德演算法資料結構筆記演算法
- 資料結構與演算法學習-陣列資料結構演算法陣列
- 資料結構與演算法學習-開篇資料結構演算法
- 學習JavaScript資料結構與演算法 (一)JavaScript資料結構演算法
- 資料結構與演算法 -PTA選擇判斷複習題(持續更新中)資料結構演算法
- 【PHP資料結構】PHP資料結構及演算法總結PHP資料結構演算法
- 資料結構複習-01enum列舉型別資料結構型別
- 資料結構&演算法資料結構演算法
- 2024年武漢大學電信演算法與資料結構期末複習隨記演算法資料結構
- 演算法與資料結構學習路線圖演算法資料結構
- 資料結構和演算法-學習筆記(一)資料結構演算法筆記
- 資料結構與演算法-學習筆記(二)資料結構演算法筆記
- 資料結構與演算法-學習筆記(16)資料結構演算法筆記
- 資料結構與演算法學習筆記01資料結構演算法筆記
- 學習javascript資料結構與演算法(六)——圖JavaScript資料結構演算法
- 資料庫期末複習小結資料庫
- 《資料結構與演算法之美》為什麼要學習資料結構和演算法 (讀後感)資料結構演算法
- 【資料結構】複習提綱與重難點概覽資料結構
- python演算法與資料結構-演算法和資料結構介紹(31)Python演算法資料結構