首页 > 其他分享 >AtCoder Regular Contest 148 C Lights Out on Tree

AtCoder Regular Contest 148 C Lights Out on Tree

时间:2022-09-18 12:33:05浏览次数:81  
标签:AtCoder Contest Tree Lights Regular 集合 节点

挺好的一道题,简单写一下题解吧。
首先有挺多很 naive 的结论:

  • 每个节点按两遍等于没按。
  • 熄灭所有的灯只有一种方案。

其实将灯熄灭的方案无非就是从上往下 dfs,如果当前灯是量的,就在当前节点按一下,否则不按。这样我们就可以写出暴力了。

考虑一下,如果树上只有一个节点 \(u\) 开始亮灯,那么需要按的灯即为 \(u\) 和所有 \(u\) 的儿子,设这个集合为 \(\{v\}\)。

进一步考虑一下,若初始的亮灯集合为 \(\{u_1,u_2,u_m\}\),那么所有需要按的集合即为 \(\{v_1,v_2,v_m\}\),再根据上面的第一个结论:每个节点按两遍等于没按,所以只需要求出在 \(\{v_1,v_2,v_m\}\) 集合中出现次数为奇数的节点个数。

标签:AtCoder,Contest,Tree,Lights,Regular,集合,节点
From: https://www.cnblogs.com/lnwhl/p/16703468.html

相关文章

  • AtCoder Beginner Contest 268
    E-ChineseRestaurant(Three-StarVersion)假设旋转\(x\)次时,\(n\)个人失望值的总和为\(c_x\),那么只要能求出\(c_x,0\lex<n\)就可以包含所有情况,然后再取......
  • AtCoder Beginner Contest 269 (A-F)题解
    A-AnywayTakahashi这里我还是关了ll的C开了忘了关害的F多了一发罚时#include<bits/stdc++.h>usingnamespacestd;constintN=3e5+10;constintM=9982443......
  • AtCoder Beginner Contest 269
    咕咕咕咕咕。F-NumberedChecker首先矩形容斥,把一个询问拆分成4个询问。现在只需要解决:左上角为\((1,1)\),右下角为\((x,y)\)的矩形区域和这一问题。把列数为奇......
  • 2019-2020 ACM-ICPC Brazil Subregional Programming Contest D Denouncing Mafia
    DenouncingMafia贪心+线段树+\(dfs\)序考虑贪心地每次拿能染色最多的点,每拿走一个点,都会影响其他点的值,如果一个点被染色,则他子树的所有点的贡献值都会-1,因此考......
  • AtCoder Beginner Contest 267 题解
    只会\(A\simG\)主观难度:\(A<B<C<E<D<F<G<Ex\)A-Saturday分别对周一到周五判断即可。#include<bits/stdc++.h>usingnamespacestd;inlineintread(){int......
  • bootstrap-treeview
    目录#文档#使用1.引用2.定义容器3.初始化4.效果图#自定义函数#文档https://www.npmjs.com/package/bootstrap-treeviewhttps://github.com/jonmiles/bootstrap-tree......
  • Sourcetree报错 git -c diff.mnemonicprefix=false -c core.quotepath=false --no-opt
    Sourcetree报错git-cdiff.mnemonicprefix=false-ccore.quotepath=false--no-optional-locksfetch--no-tagsorigin解决方式进入当前报错仓库的目录,执行GieBash......
  • AtCoder Beginner Contest 262(D-E)
    D-IHateNon-integerNumber题意:一个长度为n的数组,选择其中的x项,问其中有多少种选择,这x项的和可以被选择的数目整除,比如,选择3个数,和为6,那么6/3=2,就可以被整除。题解:......
  • Codeforces Round #819 (Div. 1 + Div. 2) and Grimoire of Code Annual Contest 2022
    这场打的稀烂。。。A.MainakandArray题意:将数组中某段子序列翻转一次,求a[n]-a[1]最大的值。思路:有三种情况:第一种,将最小的数翻转到第一位,然后用原来的a[n]减去反......
  • The 2021 China Collegiate Programming Contest (Harbin)
    比赛链接:https://codeforces.com/gym/103447B.MagicalSubsequence题意:给定一个序列\(A\),选择一个长为偶数的子序列\(B\),使得\(B_1+B_2=B_3+B_4...\),问这个......