关于cin位置与时间关系
查看原帖
关于cin位置与时间关系
235996
FzoG楼主2023/7/31 10:50

RT 在此代码下

#include <iostream>
using namespace std;

int dp[60][60];
int n;

int main()
{
	//cin>>n; 位置1
	for(int i=1;i<=60;i++)
	{
		for(int j=1;j<=60;j++)
		{
			dp[i][j]=99999999;	
		}	
	}
    //cin>>n; 位置2
	for(int i=1;i<=n;i++)
	{
		char x,y;
		int a,b,k;
		cin>>x>>y>>k;
		if('A'<=x&&x<='Z')
		{
			a=x-'A'+1;
		}
		else
		{
			a=x-'a'+1+26;
		}
		if('A'<=y&&y<='Z')
		{
			b=y-'A'+1;
		}
		else
		{
			b=y-'a'+1+26;
		}
		dp[a][b]=min(dp[a][b],k);
        dp[b][a]=min(dp[b][a],k);
	}
	for(int k=1;k<=52;k++)
	{
		for(int i=1;i<=52;i++)
		{
			for(int j=1;j<=52;j++)
			{
				dp[i][j]=min(dp[i][j],dp[i][k]+dp[k][j]);
			}
		}
	}
	int ans=99999999;
	char c;
	for(int i=1;i<26;i++)
	{
		if(dp[i][26]<ans)
		{
			ans=dp[i][26];
			c=i-1+'A';
		}
	}
	cout<<c<<" "<<ans;
	return 0; 
}

在dp初始化之前(位置1),洛谷在线IDE 1995ms

在dp初始化之后(位置2),洛谷在线IDE 24ms

2023/7/31 10:50
加载中...