大佬们第1个点和第7个点错了,检查一上午了求帮助
  • 板块P1608 路径统计
  • 楼主logh
  • 当前回复1
  • 已保存回复1
  • 发布时间2020/7/13 15:00
  • 上次更新2023/11/6 23:12:11
查看原帖
大佬们第1个点和第7个点错了,检查一上午了求帮助
177533
logh楼主2020/7/13 15:00
#include <iostream>
#include <cstdio>
#include <cstring>
#include <queue>
using namespace std;
long long a[6001],b[2001][2001],c[2001],dis[2001],e,f,g,h,j,k,head,tail,way[20001],vis[2001];
int main()
{cin>>e>>f;

for(int yui=1;yui<=e;yui++)
{dis[yui]=1e7;
	for(int opi=1;opi<=e;opi++)
b[yui][opi]=1e8;
}


for(int yui=1;yui<=f;yui++)
{
	cin>>h>>j>>k;
	b[h][j]=min(k,b[h][j]);

}
dis[1]=0;
tail=2;
head=1;
c[1]=1;
way[1]=1;
vis[1]=1;
while(head<tail)
{
	
 
 
	
	for(int yui=1;yui<=e;yui++)
	{
		if(dis[c[head]]+b[c[head]][yui]<dis[yui])
		{
			
			dis[yui]=dis[c[head]]+b[c[head]][yui];
			
			way[yui]=way[c[head]];
	      if(vis[yui]==0)
			{
				c[tail]=yui;
				tail++;
				vis[yui]=1;
			}
			
			
		}
		else
		if(dis[c[head]]+b[c[head]][yui]==dis[yui])
		{
			
			way[yui]=way[yui]+way[c[head]];
		
		 
		}
		
			
		
	}
	

	vis[c[head]]=0;

	head++;
	
	
	
	
	
}

if(dis[e]==1e7) 
cout<<"No answer";
else
cout<<dis[e]<<" "<<way[e];

}
2020/7/13 15:00
加载中...