45分求调
查看原帖
45分求调
952115
zhyn楼主2024/8/8 19:28

样例已过,但交上去只有45分,WA on #3,#4,#5,#7,#8,不知道怎么错了。

测评

代码:

#include<bits/stdc++.h>
using namespace std;
#define maxn 200


int dis[maxn][maxn];
int p,vis[maxn];
int cal(char x){
	if(x>='a'&&x<='z'){
		return x-'a'+1;
	}
	else{
		vis[x-'A'+25]=1;
		return x-'A'+25;
	}
}


int main(){
	ios::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	cin>>p;
	
	for(int i=1;i<=150;i++){
		for(int j=1;j<=150;j++){
			dis[i][j]=0x3f3f3f3f;
		}
		dis[i][i]=0;
	}
	
	
	for(int i=1;i<=p;i++){
		char u,v;
		int w;
		cin>>u>>v>>w;
		int a=cal(u),b=cal(v);
		//cout<<a<<" "<<b<<"\n";
		dis[a][b]=min(dis[a][b],w);
		dis[b][a]=min(dis[b][a],w);
	}
	
	for(int k=1;k<=150;k++){
		for(int i=1;i<=150;i++){
			for(int j=1;j<=150;j++){
				dis[i][j]=min(dis[i][j],dis[i][k]+dis[k][j]);
			}
		}
	}
	int ans=0x7f7f7f7f;
	char k; 
	for(int i=25;i<=49;i++){
		if(vis[i]){
			if(ans>dis[i][50]){
				ans=dis[i][50];
				k=i+40;
			}
		}
	}
	
	cout<<k<<" "<<ans;
	return 0;
}
2024/8/8 19:28
加载中...