社区讨论
排不出错,交上去wa,求神犇看看
P1330封锁阳光大学参与者 3已保存回复 3
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 3 条
- 当前快照
- 1 份
- 快照标识符
- @mi5huccp
- 此快照首次捕获于
- 2025/11/19 12:19 4 个月前
- 此快照最后确认于
- 2025/11/19 12:19 4 个月前
CPP
#include<algorithm>
#include<iostream>
#include<cstdlib>
#include<cstring>
#include<cstdio>
#include<cmath>
#include<queue>
#include<set>
using namespace std;
typedef long long LL;
#define N 100010
struct edge
{
int to,next,w;
}e[N<<2];
int head[N];
int cnt;
int col[N];
int n,m;
void link(int x,int y)
{
e[++cnt]=(edge){y,head[x]};
head[x]=cnt;
}
bool dfs(int x)
{
for (int i=head[x],y;i,y=e[i].to;i=e[i].next)
{
if (!col[y])
{
col[y]=!col[x];
if (!dfs(y))
return 0;
}
else if (col[x]==col[y])
return 0;
}
return 1;
}
int main()
{
freopen("a.in","r",stdin);freopen("a.out","w",stdout);
scanf("%d%d",&n,&m);
for (int i=1,x,y;i<=m;i++)
{
scanf("%d%d",&x,&y);
link(x,y);
link(y,x);
}
for (int i=1;i<=n;i++)
if (!dfs(i))
{
printf("Impossible\n");
return 0;
}
int ans=0;
for (int i=1;i<=n;i++)
if (!col[i])
ans++;
printf("%d",min(ans,n-ans));
return 0;
}
回复
共 3 条回复,欢迎继续交流。
正在加载回复...