求助
  • 板块学术版
  • 楼主一SakuRa
  • 当前回复12
  • 已保存回复12
  • 发布时间2021/9/2 21:50
  • 上次更新2023/11/4 08:06:44
查看原帖
求助
419519
一SakuRa楼主2021/9/2 21:50

萌新刚学图论,问题求助

题目

图片链接?

关于题目的限制:

Time Limit 3500MS

Memory Limit 64MB

我的代码:

#include<bits/stdc++.h>
using namespace std;
int n,m ;
struct Edge{
	int next,to,dis;
}edge[1000101];
int head[1000001]={0},cnt=0,u,v;
bool edges[1000001]={0};
inline void add(int from,int t,int l){
	edge[++cnt].next=head[from];
	edge[cnt].to=t;
	edge[cnt].dis=l;
	head[from]=cnt;
}
int main(){
	memset(head,-1,sizeof(head));
	cin>>n>>m;
	for(int i=1;i<=m;i++){
		cin>>u>>v;
		add(u,v,1);
		add(v,u,1);
	}
	int sum=0;
	//cout<<endl;
	for(int i=1;i<=n;i++){
		if(!edges[i]){
			sum++;
			edges[i]=1;
			for(int j=head[i];j!=-1;j=edge[j].next){
				edges[edge[j].to]=1;
				//cout<<i<<" "<<edge[j].to<<"\n";
			}
			/*cout<<endl;*/
		}
		else
			continue;
	}
	cout<<sum;
	return 0;
}

只对了1个点XWX

2021/9/2 21:50
加载中...