感觉F题的数据有点水,如果这样生成的数据能让 https://ac.nowcoder.com/acm/contest/view-submission?submissionId=42775397 tle。
上面的做法是抠掉所有的黑色节点,然后对每一个黑色节点都进行dfs,下面这组数据所有的白色节点在每一次dfs的时候都会被找一遍,从而卡掉上面的做法。
#include<bits/stdc++.h>
using namespace std;
int main() {
	// freopen("test.txt", "w", stdout);
	int n = 32222 << 1;
	cout << n << "\n";
	for(int i = 1; i <= n / 2; i++) cout << "W";
	for(int i = 1; i <= n / 2; i++) cout << "B";
	cout << "\n";
	for(int i = 1; i < n / 2; i++) cout << i << " " << i + 1 << "\n";
	for(int i = n / 2 + 1; i <= n; i++) cout << 1 << " " << i << "\n";
}

加上这样的数据会更好一点。