比赛 20121009 评测结果 AWWWTTAAA
题目名称 最长路 最终得分 44
用户昵称 Cloud 运行时间 2.190 s
代码语言 C++ 内存使用 11.87 MiB
提交时间 2012-10-09 19:18:35
显示代码纯文本
#include<fstream>
#include<queue>
using namespace std;
struct yu
{
	int p;
	long long v;
};
queue<yu>dq;
yu tmp;
int map[1501][1501];
int main(void)
{
	ifstream fin("longest.in");
	ofstream fout("longest.out");
	long long max=-1;
	int n,m;
	fin>>n>>m;
	int i,j,k;
	for(k=0;k<m;k++)
	{
		fin>>i>>j;
		fin>>map[i][j];
	}
	for(i=1;i<=n;i++)
		if(map[1][i])
		{
			tmp.p=i;
			tmp.v=map[1][i];
			if(tmp.p==n)
				if(tmp.v>max)
					max=tmp.v;
			dq.push(tmp);
		}
	while(dq.size())
	{
		for(i=1;i<=n;i++)
		{
			tmp=dq.front();
			if(map[tmp.p][i])
			{
				tmp.v+=map[tmp.p][i];
				tmp.p=i;
				if(tmp.p==n)
					if(tmp.v>max)
						max=tmp.v;
				dq.push(tmp);
			}
		}
		dq.pop();
	}
	fout<<max;
	fin.close();
	fout.close();
	return 0;
}