RE了,20分,求助!
查看原帖
RE了,20分,求助!
1271081
hnpop8楼主2024/10/23 21:27

为什么这个代码RE了?

#include<bits/stdc++.h>
#include<vector>
#include<stdlib.h>
using namespace std; 
const int MAX=10000+10; 
vector<int> t[MAX]; 
int ans=0,color[3],V[MAX]; 
bool is=true; 
int dfs(int x){
	if(V[x]==1) ++color[1];
	if(V[x]==2) ++color[2];
	for(int k=0;k<t[x].size();++k){
		int v=t[x][k];
		if(V[v]!=0){
		    if(V[v]==V[x]){
			is=false;
			return 0;
		}
			continue;
		}
		V[v]=(V[x]==1)?2:1;
		dfs(v);                     
	}                          
}                   
int main(){                      
	int n,m;                       
	cin>>n>>m;
	memset(V,0,sizeof(V));
	for(int i=1;i<=m;i++){             
	    int a,b;                  
	    cin>>a>>b;
	    t[a].push_back(b);
	    t[b].push_back(a);
	}
	for(int i=1;i<=n;i++){            
	    if(V[i]!=0){                 
                continue;                   
	    }                    
	    V[i]=1;                  
	    color[1]=0;          
	    color[2]=0;                
	    dfs(i);                  
	    ans+=min(color[1],color[2]);           
	}                      
	if(is){                      
	    cout<<ans;	                
	}                
	else cout<<"Impossible";             
    return 0;         
}
2024/10/23 21:27
加载中...