菜鸟求助样例150 输出130
查看原帖
菜鸟求助样例150 输出130
557408
Tony_rao楼主2022/7/28 20:52
#include<bits/stdc++.h>
using namespace std;

struct ryy
{
  int a,b,c;
} val[10000];

int num[1000];
bool check[1000];
int n,m;
int cnt=1;
int Max = -INT_MAX;

void dfs(int x,int maxn)
{
  {
    for(int i=1; i<=n; i++)
    {
      if(check[i] == 0 && i != x)
      {
        check[i] = 1;
        for(int f=1;f<=m;f++)
        {
            if((val[f].a == x && val[f].b == i) || (val[f].b == x && val[f].a == i))
                {
                cout << x << " to " << i << " add :" << val[f].c << endl;
                maxn += val[f].c;
                num[cnt] = f;
                cnt++;
                Max = max(maxn,Max);
                break;
        }else
            continue;
        }
            dfs(x+1,maxn);
            check[i] = 0;
            maxn = maxn-val[num[cnt-1]].c;
            cnt--;
      }
    }
  }
}

int main()
{
  cin >> n >> m;
  for(int i=1; i<=m; i++)
    cin >> val[i].a >> val[i].b >> val[i].c;
  check[1] = 1;
  dfs(1,0);
  cout << Max << endl;
  return 0;
}
2022/7/28 20:52
加载中...