tle了不知道哪里出问题了
  • 板块P1113 杂务
  • 楼主Exile_Code
  • 当前回复1
  • 已保存回复1
  • 发布时间2023/9/1 16:25
  • 上次更新2023/11/3 00:04:36
查看原帖
tle了不知道哪里出问题了
819682
Exile_Code楼主2023/9/1 16:25
#define  _CRT_SECURE_NO_WARNINGS
#include <iostream>
using namespace std;
#include <vector>
#include <set>
#include <map>
#include <unordered_map>
#include <cstdio>
#include <cstring>
#include <queue>
#include <cstdlib>
#include <algorithm>
#include <list>
#include <string>
#include <cmath>
#include <bitset>
using namespace std;
using ll = long long;
#define LF(x) fixed << setprecision(x)
typedef pair<int, int> pii;
#define endl "\n"
struct edge {
	int to, next;
}e[1000009];
pair<int,int> head[10009]; int degree[10009];
int cnt = 0;
void add(int a, int b) {
	++cnt;
	e[cnt].next = head[a].first;
	e[cnt].to = b;
	head[a].first = cnt;
	degree[b]++;
}
int mx = -1;
void dfs(int u,int sum) {
	
	if (u==1 ){
		mx = max(mx, sum+head[u].second);
	}
	
	for (int i = head[u].first; i != 0; i = e[i].next) {
		dfs(e[i].to, sum +head[u].second);
	}

}
void solve() {
	int n; cin >> n;
	for (int i = 0; i < n; i++) {
		int a, b, w; cin >> a >>w;
		head[a].second = w;
		cin >> b;
		while (b) {
			add(a, b);
			cin >> b;
		}
	}
	for (int i = 1; i <= n; i++) {
		if (degree[i] == 0)
			dfs(i, 0);
	}
	cout << mx << endl;
}
int main() {
	ios::sync_with_stdio(0);
	cin.tie(0);

	solve();

	return 0;
}



2023/9/1 16:25
加载中...