C - Remembering the Days
题意:每个点最多经过一次,求最长路
思路:数据范围很小,深搜每个点能到其他点的所有路,取最大
#include <bits/stdc++.h>
using namespace std;
const int N = 110;
int g[N][N];
int n,m;
bool st[N];
int w=0;
int ans=0;
void dfs(int u)
{
st[u]=true;
for(int i=1;i<=n;i++)
{
if(!st[i]&&g[u][i])
{
w+=g[u][i];
st[i]=true;
dfs(i);
w-=g[u][i];
st[i]=false;
}
}
ans=max(ans,w);
}
int main()
{
cin>>n>>m;
while(m--)
{
int a,b,c;
cin>>a>>b>>c;
g[a][b]=g[b][a]=max(g[a][b],c);
}
for(int i=1;i<=n;i++)
{
memset(st,0,sizeof(st));
w=0;
dfs(i);
ans=max(w,ans);
}
cout<<ans<<'\n';
}
- Remembering Beginner AtCoder Contest Daysremembering beginner atcoder contest contest programming beginner atcoder beginner atcoder contest 296 beginner atcoder contest 295 beginner atcoder contest abcde beginner atcoder contest 335 beginner atcoder contest 332 beginner atcoder contest 328 beginner atcoder contest 334 beginner atcoder contest 310