求助
#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题莫名段错误
叮咚买菜工作强度 160人发布