ABC327D,二分图判定板子求调
  • 板块灌水区
  • 楼主vicky2048_2
  • 当前回复4
  • 已保存回复5
  • 发布时间2023/11/4 21:42
  • 上次更新2023/11/5 00:31:11
查看原帖
ABC327D,二分图判定板子求调
177000
vicky2048_2楼主2023/11/4 21:42

rt

数组已经至少开大十倍了,还是挂了/kel

#include<bits/stdc++.h>
#define N 2000005
using namespace std;
int n,m,a[N],b[N],cnt,fir[N],tg[N];
struct E{ int nex,to;}e[N<<1];
void add(int,int),dfs(int,int);
signed main(){
    scanf("%d%d",&n,&m);
    for(int i=1;i<=m;++i) scanf("%d",&a[i]);
    for(int i=1;i<=m;++i) scanf("%d",&b[i]),add(a[i],b[i]);
    tg[a[1]]=1,dfs(a[1],1);
    printf("Yes");
    return 0;
}
void add(int a,int b){ e[++cnt].nex=fir[a],e[cnt].to=b,fir[a]=cnt,e[++cnt].nex=fir[b],e[cnt].to=a,fir[b]=cnt;}
void dfs(int no,int ta){
    int nt=ta&1?2:1;
    for(int i=fir[no];i;i=e[i].nex){
        int v=e[i].to;
        if(tg[v]&&tg[v]!=nt){ printf("No"); exit(0);}
        if(tg[v]) continue;
        tg[v]=nt,dfs(v,nt);
    }
}

2023/11/4 21:42
加载中...