RE求调
查看原帖
RE求调
1046110
vcstone楼主2025/2/6 11:42
#include<bits/stdc++.h>
using namespace std;
int n , m;
int h = 0;
bool book[2005] = { 0 , 1};
long long ans = -1000000000000000;
struct node
{
	int a;
	int b;
	int c;
};
node num[2005];
bool cmp ( node fn , node sn )
{
	if ( fn.a > sn.a )
	{
		return fn.a > sn.a;
	}
	return sn.a > fn.a;
}
void dfs( long long sum , int k )
{
	if ( k == n )
	{
		ans = max ( ans , sum );
		return ;
	}
	if ( book[num[k].b] == 1 || h == 1 )
	{
		h = 1;
		return ;
	}
	for ( int i = 1; i <= m; i++)
	{
		if ( num[i].a == k )
		{
			dfs( sum+num[i].c , num[i].b);
		}
	}
	book[k] = 1;
}
int main()
{
	cin >> n >> m;
	for ( int i = 1; i <= m; i++ )
	{
		cin >> num[i].a >> num[i].b >> num[i].c;
	}
	sort ( num+1 , num+1+m , cmp );
	dfs( 0 , 1);
	if (h == 1)
	{
		cout << "inf";
	}
	else
	{
		cout << ans;
	}
	return 0;
} 
2025/2/6 11:42
加载中...