听说灌水区大佬多(玄关一个)
  • 板块灌水区
  • 楼主AK_CSPS
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/6/10 18:19
  • 上次更新2024/6/10 21:14:08
查看原帖
听说灌水区大佬多(玄关一个)
933895
AK_CSPS楼主2024/6/10 18:19

P1529 89tps

#5这个点WA了

#include <bits/stdc++.h>
using namespace std;
int p,dis[60][60],minn=0x3f3f3f3f,n;
void floyd()
{
	for(int k=1;k<=52;k++)
	{
		for(int i=1;i<=52;i++)
		{
			for(int j=1;j<=52;j++)
			{
				if(dis[i][j]>dis[i][k]+dis[k][j])
				{
					dis[i][j]=dis[i][k]+dis[k][j];
				}
			}
		}
	}
}
int main()
{
	cin>>p;
	memset(dis,0x3f,sizeof dis);
	for(int i=1;i<=26;i++) dis[i][i]=0;
	while(p--)
	{
		char u,v;
		int w;
		cin>>u>>v>>w;
		if(u>='a'&&u<='z') u-=70;
		else u-=64;
		if(v>='a'&&v<='z') v-=70;
		else v-=64;
		dis[u][v]=min(dis[u][v],w);
		dis[u][v]=min(dis[u][v],w);	
	}	
	floyd();
	for(int i=1;i<=25;i++)
	{
		
		if(dis[i][26]<minn) 
		{
			n=i;
			minn=dis[i][26];
		} 
		if(dis[26][i]<minn) 
		{
			n=i; 
			minn=dis[26][i];
		}
		
	}
	cout<<char(n+64)<<" "<<minn;
	return 0;
}
2024/6/10 18:19
加载中...