w的范围有问题吗?
  • 板块P1807 最长路
  • 楼主LJSBQWQ
  • 当前回复3
  • 已保存回复3
  • 发布时间2022/9/19 20:26
  • 上次更新2023/10/27 10:35:45
查看原帖
w的范围有问题吗?
605106
LJSBQWQ楼主2022/9/19 20:26
inline int read()
{

	int x=0;
	char ch=getchar();
	while(ch<'0'||ch>'9')
		ch=getchar();
	while(ch<='9'&&ch>='0')
	{
		x=(x<<1)+(x<<3)+(ch^48);
		ch=getchar();
	}
	return x;
}

不理解,我用这个快读明明读不了负数,但是用这个来读入w却依然能A,不是很理解

难道是w的范围有问题,还是凑巧?

顺便给个Floyd大佬们方便测试

#include<bits/stdc++.h>
using namespace std;
int f[1500][1500],u,v,w,n,m,i,j,k;
inline int read()
{
	int x=0;
	char ch=getchar();
	while(ch<'0'||ch>'9')
		ch=getchar();
	while(ch<='9'&&ch>='0')
	{
		x=(x<<1)+(x<<3)+(ch^48);
		ch=getchar();
	}
	return x;
}
int main()
{
	n=read(),m=read();
	for(i=1;i<=m;i++)
	{
		u=read(),v=read(),w=read();
		f[u][v]=max(f[u][v],w);
	}
	for(k=1;k<=n;k++)
		for(i=1;i<=n;i++)
			for(j=1;j<=n;j++)
				if(f[i][k]&&f[k][j])
					if(f[i][j]<f[i][k]+f[k][j])
						f[i][j]=f[i][k]+f[k][j];
	if(f[1][n]==0)
	{
		printf("-1");
		return 0;
	}
	printf("%d",f[1][n]);	
	return 0;
} 
2022/9/19 20:26
加载中...