<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      網絡流求解連通度

      1.邊連通度

      有向圖:

      直接將邊換成流找任意一個點做原點 \(S\),然后把除了與 \(S\) 相連的點做為匯點 \(T\),做 \(O(n)\) 遍最大流求最小割即可。

      無向圖類似

      2.點連通度

      有向圖:

      將點拆成入點和出點,然后就差不多了。

      無向圖類似

      代碼常數較大,只作參考

      點擊查看代碼
      #include<bits/stdc++.h>
      #define fir first
      #define sec second
      #define int long long
      #define lowbit(x) x&(-x)
      #define mkp(a,b) make_pair(a,b)
      using namespace std;
      typedef pair<int,int> pir;
      inline int read(){
      	int x=0,f=1; char c=getchar();
      	while(!isdigit(c)){if(c=='-') f=-1; c=getchar();}
      	while(isdigit(c)){x=x*10+(c^48); c=getchar();}
      	return x*f;
      }
      const int inf=1e9,N=4e2+5;
      int n,m;
      int head[N],cnt=1;
      struct edge{int v,nxt,w;}p[N*2],q[N*2];
      inline void add_edge(int u,int v,int w){
          p[++cnt]={v,head[u],w};
          head[u]=cnt;
          p[++cnt]={u,head[v],0};
          head[v]=cnt;
      }
      int S,T,du[N],vis[N],cur[N];
      inline bool bfs(){
          queue<int> qu;
          qu.push(S);
          for(int i=1;i<=2*n;i++) vis[i]=du[i]=0;
          while(!qu.empty()){
              int x=qu.front();
              qu.pop();
              if(vis[x]) continue;
              vis[x]=1;
              for(int i=head[x];i;i=q[i].nxt){
                  int v=p[i].v;
                  if(!q[i].w) continue;
                  if(!vis[v]){
                      du[v]=du[x]+1;
                      qu.push(v);
                  }
              }
          }
          return vis[T];
      }
      inline int dfs(int x,int flow){
          if(x==T) return flow;
          int num=0;
          for(int i=cur[x];i;i=q[i].nxt){
              cur[x]=i;//當前弧優化
              int v=q[i].v,w=q[i].w;
              if(du[v]==du[x]+1){
                  int expand=dfs(v,min(flow,w));
                  q[i].w-=expand;
                  q[i^1].w+=expand;
                  num+=expand;
                  flow-=expand;
                  if(!flow) return num;
              }
          }
          return num;
      }
      inline int Dinic(){
          for(int i=2;i<=cnt;i++) q[i]=p[i];
          int res=0;
          while(bfs()){
              res+=dfs(S,inf);
              memcpy(cur,head,sizeof(head));
          }
          return res;
      }
      int V[N];
      vector<int> ed[N];
      signed main(){
          n=read(),m=read();
          for(int i=1;i<=n;i++) add_edge(i,i+n,1);
          for(int i=1;i<=m;i++){
              int u=read(),v=read();
              add_edge(u+n,v,inf);
              add_edge(v+n,u,inf);
              ed[u].push_back(v);
              ed[v].push_back(u);
          }
          for(auto v:ed[1]) V[v]=1;
          int ans=inf;
          for(int s=1;s<=n;s++){
              for(int i=1;i<=n;i++) V[i]=0;
              for(auto v:ed[s]) V[v]=1;
              V[s]=1;
              for(int t=1;t<=n;t++){
                  if(V[t]) continue;
                  S=n+s,T=t;
                  ans=min(ans,Dinic());
              }
          }
      	cout<<ans<<'\n';
      }
      
      posted @ 2024-12-22 15:39  ~Cyan~  閱讀(38)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 国产黄色一区二区三区四区| 日韩精品一区二区蜜臀av| 18禁无遮拦无码国产在线播放| 厨房与子乱在线观看| 亚洲人精品午夜射精日韩| 国产亚洲精品久久久久婷婷瑜伽| 亚洲国产av无码综合原创国产 | 响水县| 欧美乱人伦人妻中文字幕| 黑人巨大精品欧美一区二区| 任我爽精品视频在线播放 | 亚洲国产精品综合久久20| 国产成人综合在线女婷五月99播放| 激情五月日韩中文字幕| 又大又硬又爽免费视频| 性色在线视频精品| 国产极品粉嫩尤物一区二区| 久久亚洲精品中文字幕波多野结衣| 免费A级毛片无码A∨蜜芽试看| 亚洲精品理论电影在线观看| 欧美日韩精品一区二区三区高清视频| 国产尤物精品自在拍视频首页| 精品久久久久无码| 起碰免费公开97在线视频| 国产又爽又黄又刺激的视频| 色噜噜狠狠成人综合| 乱码午夜-极品国产内射| 成人毛片一区二区| 亚洲最大成人在线播放| 午夜三级成人在线观看| 国产精品一二三区久久狼| 久久综合干| 最新国产在线拍揄自揄视频| 噜噜噜噜私人影院| 国产成人无码一二三区视频 | 国产一区二区在线激情往| 国产一区二区日韩经典| 国产精欧美一区二区三区| 日韩精品一区二区三区激情视频| 日本深夜福利在线观看| 精品亚洲欧美高清不卡高清|