codeforces1375G Tree Modification

https://codeforces.com/problemset/problem/1375/G

感觉这题是D题难度啊。。。。

观察给出的图发现,对于(很多d)-a-b-c,一次操作相当于把这些d和a,b同时连向了c点,那么我们发现a,c是距离为2的点,很多d和b也是距离为2的点,那么其实就是二分图上同一层的点a把它所有连接的点连接给同一层的点c

那么最后就是奇数层或者偶数层的某个点是根节点,那么二分图染色看哪个少就行了

#include
using namespace std;
typedef long long ll;

const int maxl=3e5+10;

int n,m,cas,k,cnt[2],ans;
int a[maxl],b[maxl];
char s[maxl];
bool in[maxl],vis[maxl]; 
vector e[maxl];

inline void prework()
{
	scanf("%d",&n);
	int u,v;
	for(int i=1;i

 

你可能感兴趣的:(思维,规律)