缩点(有待题目检验,代码不可靠)

Posted BOSON+CODE

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了缩点(有待题目检验,代码不可靠)相关的知识,希望对你有一定的参考价值。

#include <bits/stdc++.h>
using namespace std;

const int maxn = 2e6;
int head[maxn];
int bel[maxn];
int w[maxn];
bool vis[maxn];
int cnt = 0, n;

struct node{
    int to, nxt;
}e[maxn];

void init(){
    memset(head, -1, sizeof head);
    memset(vis, false, sizeof vis);
    cnt = 0;
}

void addedge(int u, int v){
    e[cnt].to = u;
    e[cnt].nxt = head[u];
    head[u] = cnt++;
}

void bfs(){//缩点
    queue<int>q;
    q.push(1);
    memset(vis, false, sizeof vis);
    while(!q.empty()){
        int u = q.front();
        q.pop();
        if(vis[u]) continue;
        vis[u] = true;
        for(int i = head[u]; ~i; i = e[i].nxt){
            int v = e[i].to;
            if(!vis[v] && w[u] == w[v]){
                bel[v] = bel[u];
                q.push(v);
            }
        }
    } 
    for(int i = 1; i <= n; ++i){
        for(int j = head[i]; ~j; j = e[j].nxt){
            int v = e[j].to;
            if(bel[v] != bel[i])
                addedge(bel[i], bel[v]);
        }
    }
}

int main(){
     cin >> n;
    for(int i = 1; i <= n; ++i) bel[i] = i;
}

 

以上是关于缩点(有待题目检验,代码不可靠)的主要内容,如果未能解决你的问题,请参考以下文章

洛谷 P2194 HXY烧情侣Tarjan缩点 分析+题解代码

⑦2018=10.7

《安富莱嵌入式周报》第279期:强劲的代码片段搜索工具,卡内基梅隆大学安全可靠C编码标准,Nordic发布双频WiFi6 nRF7002芯片

VS2015 代码片段整理

POJ3352边双连通分量缩点添加最少无向边构造边双

2019.8.28刷题统计