求助,不知道为什么报错
查看原帖
求助,不知道为什么报错
566903
福明o7楼主2022/7/27 10:47
#include<bits/stdc++.h>
using namespace std;
const int inf=2147483647;
const int MAXN=5005;
int u,v,w;
struct edge{
	int u,v,cost;
};
vector<edge>s;
vector<int> e[MAXN];
int n,p,c;
int dis[MAXN],mc[MAXN];
bool vis[MAXN];
void spfa(int s){
	queue<int> q;
	for(int i=1;i<=p;i++){
		dis[i]=inf;
	}
	dis[s]=0;
	q.push(s);
	vis[s]=1;
	while(!q.empty()){
		int u=q.front();
		for(int i=0;i<e[u].size();i++){
			int to=s[e[u][i]].v;
			int cost=s[e[u][i]].w;
			if(dis[u]+cost<dis[to]){
				dis[to]=dis[u]+cost;
				if(!vis[to]){
					q.push(to);
					vis[to]=1;
				}
			}
		}
		q.pop();
		vis[u]=0;
	}
}
int main(){
	scanf("%d %d %d",&n,&p,&c);
	for(int i=1;i<=n;i++){
		scanf("%d",&mc[i]);
	}
	for(int i=0;i<2*c-1;i+=2){
		scanf("%d %d %d",&u,&v,&w);
		s.push_back(edge{u,v,w});
		s.push_back(edge{v,u,w});
		e[u].push_back(i);
		e[v].push_back(i+1);
	}
	int ans=inf;
	for(int i=1;i<=p;i++){
		int di=0;
		spfa(i);
		for(int j=1;j<=n;j++){
			di+=dis[mc[j]];
		}
		ans=min(ans,di);
	}
	printf("%d\n",ans);
	return 0;
} 

第25、26行报错 错误类型:invalid types int[int] for array subscript

2022/7/27 10:47
加载中...