92 WA on#11求调
查看原帖
92 WA on#11求调
741709
zixuan_xu楼主2024/7/11 15:10
#include<bits/stdc++.h>
using namespace std;
const int N=1e4,M=1e5+10;
struct edge{
    int s,t,num;
    long long val;
}e[M];
int f[N][N],mp[N][N];
int dep[N];
int s,t,n,m;
vector<int> g[N];
queue<int> q;
bool cmp(edge satori,edge koishi){
    if(satori.val==koishi.val)  
            return satori.num<koishi.num;  
      else return satori.val>koishi.val;
}

bool bfs(){
    while(!q.empty())q.pop();
    memset(dep,0,sizeof(dep));
    q.push(s);
    dep[s]=1;    
    while(!q.empty()){
        int u=q.front();
        q.pop();
        for(int i=0;i<g[u].size();i++){
            int v=g[u][i];
            if(!dep[v] && f[u][v]){
                dep[v]=dep[u]+1;
                q.push(v);
            }
        }
    }
    
    return dep[t];
}

int dfs(int u,int maxflow){
    if(u==t)return maxflow;
    if(maxflow==0)return 0;
    
    int v;
    int flow;
    for(int i=0;i<g[u].size();i++){
        if(dep[v=g[u][i]]!=dep[u]+1)continue;
        
        if((flow=dfs(v,min(maxflow,f[u][v]))))
        {
            f[u][v]-=flow;
            f[v][u]+=flow;
            return flow;
        }
    }
    
    return 0;
}

int dinic(){
    int res=0,tmp;
    while(bfs())
        while(tmp=dfs(s,1e9))
            res+=tmp;
    return res;
}

void reset(){
    for(int i=0;i<=n;i++)
        for(int j=0;j<=n;j++)
            f[i][j]=mp[i][j];
}

int main(){
    s=1;
    cin>>n;
    t=n;
    cin>>m;
    for(int i=1;i<=m;i++){
		cin>>e[i].s>>e[i].t>>e[i].val;
        e[i].num=i;
        mp[e[i].s][e[i].t]+=e[i].val;
        f[e[i].s][e[i].t]+=e[i].val;
        g[e[i].s].push_back(e[i].t);
    }
    
    sort(e+1,e+m+1,cmp);
    int nans=dinic(),tmpans,ans=0;
    cout<<nans<<" ";
    
    for(int i=1;i<=m;i++){
        reset();
        f[e[i].s][e[i].t]-=e[i].val;
        
        tmpans=dinic();
        
        if(nans-tmpans==e[i].val){
            ans++;
            mp[e[i].s][e[i].t]-=e[i].val;
            nans=tmpans;
        }
    }
    cout<<ans;
	return 0;
}
2024/7/11 15:10
加载中...