题目大意
给出一幅无向图,每个点被选择后邻接的点以及它本身权值都加一,要求构造一种方案使得每一个点i最终的权值不等于给出的
算法分析
这道题咋一看无从下手,完全没有头绪。
最主要是没有考虑到根本不可能无解。
考虑下面这种构造方式
- 若图中每个点Ai都不为0,那么所有人都不选就可以满足要求了。
- 若存在一个点Ai为0,那么将它选上,并将其临接的所有点Ai都减一,重复这两个步骤。
为什么存在0点时需要选它本身而不是选择邻接的点呢?
由于Ai的可能取值有n+1种,但是只有n个点,也就是说总有一种情况是取不到的。
因为当且仅当某个点的
反思
CF上有很多很多题都是无从入手的,而且这些题很大一部分上都用到了很精妙的构造。所以当常规算法无法满足这道题目的要求时,尝试一下构造一个解吧。