求助

#include <bits/stdc++.h>
using namespace std;
struct node{
    int next,to,w;
}e[1000010];
int first[1000010],a[1000010],ffffff,last = INT_MAX,len,dis[1000010],n;
bool vis[1000010];
void add(int x,int y,int w){
    e[++len].to = y;
    e[len].w = w;
    e[len].next = first[x];
    first[x] = len;
}
void find(int);
int main(){
    freopen("data.in","r",stdin);
    freopen("data.out","w",stdout);
    cin>>n;
    for(int i = 1;i <= n;i++){
        cin>>a[i];
    }
    for(int i = 1;i <= n;i++){
        for(int j = i;j <= n;j++){
            add(i,j,a[i] xor a[j]);
            add(j,i,a[i] xor a[j]);
        }
    }
    for(int i = 1;i <= n;i++){
        find(i);
    }
    cout<<ffffff<<endl;
    return 0;
}
void find(int x){
    memset(vis,false,sizeof(vis));
    queue < int > q;
    while(!q.empty()){
        q.pop();
    }
    q.push(x);
    vis[x] = true;
    int step = 0,ans = 0,ttt = 0;
    while(step < n - 1){
        int x = q.front();
        q.pop();
        int k,minn = INT_MAX;
        for(int i = first[x];i;i = e[i].next){
            if(!vis[e[i].to] && minn > e[i].w){
                minn = e[i].w;
                k = i;
            }
        }  
        step++;
        vis[e[k].to] = true;
        ans += e[k].w;
        ttt = max(ttt,e[k].w);
        q.push(e[k].to);
    }
    if(ans < last){
        last = ans;
        ffffff = ttt;
    }
}

为什么错了?
今天提高组1第2题莫名段错误

#笔试题目#
全部评论

相关推荐

想进开水团喝开水:哦 给我一个 就算你真拿到牛友也会为你开心的
点赞 评论 收藏
分享
12-14 22:54
武汉大学 Java
点赞 评论 收藏
分享
评论
2
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务