在线IDE报错
  • 板块学术版
  • 楼主wangzl
  • 当前回复5
  • 已保存回复5
  • 发布时间2021/7/26 08:28
  • 上次更新2023/11/4 13:18:52
查看原帖
在线IDE报错
222039
wangzl楼主2021/7/26 08:28

在线IDE总提示错误:对‘hash’的引用有歧义是怎么回事?

#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstring>
#include<string>
#include<queue>
#include<stack>
#include<cstdlib>
#include<iomanip>
#include<algorithm>
#define N 10000+5
using namespace std;
int hash[N],sum,sum_[3],go[N];
bool vis[N][N],n,m;
inline int read(){
    int w=1,s=0;
    char c=getchar();
    while(c<'0'||c>'9'){
        if(c=='-') w=-1;
        c=getchar();
    }
    while(c>='0'&&c<='9'){
        s+=(s<<3)+(s<<1)+(c^48),
        c=getchar();
    }
    return s*w;
}
void print(){
    for(int i=1;i<=m+1;++i) printf("%d ",go[i]);
}
void dfs(int p,int dep){
    if(hash[p]==0) return;
    if(hash[p]==1&&dep==m) {
        print();
        exit(0);
    }
    --hash[p];
    for(int i=1;i<=n;++i){
        if(vis[p][i]){
            vis[p][i]=vis[i][p]=0;
            --hash[p];
            dfs(i,dep+1);
            vis[p][i]=vis[i][p]=1;
            ++hash[p];
        }
    }
}
int main(){
    n=read(),m=read();
    for(int i=1;i<=m;++i) {
        int x=read(),y=read();
        vis[y][x]=vis[x][y]=1;
        ++hash[x];
        ++hash[y];
    for(int i=1;i<=n;++i){
        if(hash[i]&1==1){
            sum_[++sum]=i;
        }
    }
    if(sum==0) --hash[1],go[1]=1,dfs(1);
    if(sum==2) --hash[sum[1]],go[1]=sum[1],dfs(sum_[1]);
    return 0;
}
2021/7/26 08:28
加载中...