WA20分???
查看原帖
WA20分???
553469
huangsibo楼主2024/7/26 14:23
#include <bits/stdc++.h>
using namespace std;
#include <bits/stdc++.h>
using namespace std;
const int N = 5;
long long a, b, cnt, num, root, sum[N], Gd[N], dfn[N], low[N], head[N], iscut[N];
struct node{
	long long x;
	int u, v, nxt;
}g[N];
void add (int x, int y, long long w) {
	g[++ cnt] = {x, y, w, head[x]};
	head[x] = cnt;
}
void Tarjan (int now, int fa) {
	dfn[now] = ++ cnt;
	low[now] = cnt;
	int child = 0;
	for(int i = head[now]; i; i = g[i].nxt) {
		int v = g[i].v;
		if(!dfn[v]) {
			child ++;
			Tarjan(v, now);
			low[now] = min(low[now], low[v]);
			if(fa != now && dfn[now] <= low[v] && iscut[now] == false) {
				++ num;
				iscut[now] = true;
			}
		} else if(v != fa)
			low[now] = min(low[now], dfn[v]);
	}
	if(fa == now && child >= 2 && iscut[now] == false) {
		++ num;
		iscut[now] = true;
	}
}

template <typename T> inline void writeT (T x) {
    if(x < 0) {
		putchar('-');
		x = -x;
	}
    if(x > 9) {
		writeT(x / 10);
    }
	putchar(x % 10 + '0');
	return;
}

template <typename T> inline void readT (T &x) {
    bool f = 1;
	x = 0;
	char ch = getchar();
    while (ch < '0' || ch > '9') {
		if (ch == '-') {
			f = !f;
			ch = getchar();
		}
	}
    while (ch >= '0' && ch <= '9') {
		x = (x << 1) + (x << 3) + (ch ^ 48);
		ch = getchar();
	}
	x = f * x;
	return;
}

int main () {
	readT(a);
	readT(b);
	add(1, 2, a);
	add(1, 3, b);
	cnt = 0;
	Tarjan(1, 1);
	num = 0;
	for(int i = 1; i <= 3; i ++) {
		if(iscut[i] == true)
			Gd[++ num] = i;
	}
	for(int i = 1; i <= num; i ++) {
		for(int j = 1; j <= 3; j ++) {
			if(g[j].u != Gd[i])
				break;
			sum[i] += g[j].x;
		}
	}
	long long maxx = 0;
	for(int i = 1; i <= num; i ++)
		maxx = max(maxx, sum[i]);
	cout << maxx;
	return 0;
}

提交记录

神马玩意呀???怎么A+B都不对了???

2024/7/26 14:23
加载中...