首页 > 其他分享 >[ABC345F] Many Lamps 题解

[ABC345F] Many Lamps 题解

时间:2024-03-19 20:00:48浏览次数:26  
标签:连通 颜色 题解 Lamps Many 一定 操作

题意:给定一个 \(n\) 个点 \(m\) 条边的无向图,每个点的初始颜色为 \(0\)。一次操作是将一条边的两个端点的颜色翻转。求是否能通过若干次操作使得最终有 \(k\) 个颜色为 \(1\) 的点。

首先考虑什么情况下无解。会发现每一次操作,颜色为 \(1\) 的点的数量变化一定是 \([0,+2,-2]\) 中的一种,所以任何时候都一定是偶数。于是当 \(k\) 为奇数的时候,一定无解。

对于 \(k\) 不是奇数的情况,我们对于一个连通块进行考虑(可能有多个连通块,将贡献相加即可)。假设这个连通块有 \(x\) 个点,我们先求出这个连通块的一颗生成树,那么有一个结论:一定有一种操作方式使得这颗生成树中最终有 \(\lfloor \frac{x}{2} \rfloor \times 2\) 个颜色为 \(1\) 的点。因为对于树上的一个点 \(u\),假设它下面的点的颜色已经全部为 \(1\) 了,那么一定通过控制 \(u \to fa_u\) 这条边的操作与否使得 \(u\) 这个点变为 \(1\),所以除了根节点之外的所有点都一定能变为 \(1\)。而根节点能否变为 \(1\) 取决于 \(x\) 的奇偶性。

所以如果 \(\sum \lfloor \frac{x}{2} \rfloor \times 2 \ge k\) 的话,最终有解。对于每一个连通块可以通过一次 \(\text{dfs}\) 遍历得到具体的方案。否则无解。

标签:连通,颜色,题解,Lamps,Many,一定,操作
From: https://www.cnblogs.com/Creeperl/p/18083813

相关文章

  • CF1935 A-C题解
    A设\(s\)翻转后的字符串为\(t\),考虑进行\(n\)次操作可能生成出哪些字符串:只进行翻转操作——\(s\);先复制再\(n-1\)次翻转——\(s+t\);先翻转,再复制,再翻转\(n-2\)次,\(t+s\);多次复制的情况。情况2显然劣于情况1;情况4得到的字符串的开头一定是\(s\)或者\(t\)......
  • 初三多项式的运算练习 题解
    初三多项式的运算练习题解美好的下午时光要拿来写题解呜呜呜,一篇一篇地鸽得了。有些题要用到GF的知识,或许我可以找时间讲一下?贴一份我的FFT和NTT的板子。FFT:#include<bits/stdc++.h>usingnamespacestd;typedeflonglongll;intn,m,limit,f[1<<22],g[1......
  • 洛谷 P2934 [USACO09JAN] Safe Travel G 题解
    前话貌似别人都是使用并查集维护的方法,然而由于排序、最短路等算法瓶颈,以下令\(n\)和\(m\)同阶,总的时间复杂度依然是\(\Theta(n\logn)\)的,那么并查集是否有点大材小用了。事实上,在建完最短路径树后,我给出了两种带\(\log\)的数据结构完成此题。题目分析翻译里已经把问......
  • 腾讯春招内参:2024最全Spring Boot面试题解析,技术精英必备!
    随着2024年春季招聘季的来临,腾讯再次开启了对富有才华和创新精神的技术人才的寻找之旅。作为一家全球领先的互联网科技公司,腾讯在寻找那些不仅拥有扎实的技术基础,而且能够适应快速发展和变化的行业环境的候选人。在众多技术栈中,SpringBoot作为简化Spring应用开发的工具,因其......
  • AtCoder Beginner Contest 345 A-F 题解
    A-LeftrightarrowQuestion给你一个由<、=和>组成的字符串\(S\)。请判断\(S\)是否是双向箭头字符串。字符串\(S\)是双向箭头字符串,当且仅当存在一个正整数\(k\),使得\(S\)是一个<、\(k\)个=和一个>的连接,且顺序如此,长度为\((k+2)\)。Solution按照题意......
  • 分月饼【华为OD机试JAVA&Python&C++&JS题解】
    一.题目-分月饼中秋节,公司分月饼,m个员工,买了n个月饼,m<=n,每个员工至少分1个月饼,但可以分多个,单人分到最多月饼的个数是Max1,单人分到第二多月饼个数是Max2,Max1-Max2<=3,单人分到第n-1多月饼个数是Max(n-1),单人分到第n多月饼个数是Max(n),Max(n-1)–Max(n)<=3,问有多少......
  • ARC174C 题解
    blog。官解似乎很难想到,这里是容易想到的方法。显然是DP。介于轮数可能趋近于无穷,所以类似P4550做即可。设\(f_i,g_i\)表示已经抽了\(i\)个数,当前是Alice或Bob抽的,期望罚款。倒推处理,\(f_n=g_n=0\)。下文中\(p=\dfracin\)表示抽到已经有的概率。\[\large\begin......
  • [极客大挑战 2019]web部分题解(sql部分已完结,其他部分正在更新)
    SQL部分:[极客大挑战2019]BabySQL打开环境后有登录界面◕‿◕一眼注入,后先试试万能密码:username:admin'or'1'='1password:1 GG,出大问题,我就会这一招啊O.o??完结撒花(不是꒰ঌ(⌯''⌯)໒꒱开玩笑的,着看着像是过滤了or后来尝试了一下oorr双写发现也不行,那咱继续注入哈:尝试......
  • 题解:CF1941G Rudolf and Subway
    原题链接简化题意一个无向连通图中将边分成了不同颜色(保证同种颜色联通),问从\(b\)到\(e\)最短需要经过几种颜色思路考虑因为同种颜色联通,可直接在读入的时候开两个vector分别存每个点属于的颜色及每种颜色有哪些点,又因为颜色数字可能跨度比较大,最好另开一个存颜色的种......
  • P9077 [PA2018] Poddrzewo 题解
    思考感觉题目有点迷惑的意思,要最小化操作\(1\)使用的次数,也就是要节约修改操作,让我们认为操作\(1\)是最有用的,其实只要稍微动动脑子想一想,删除操作才是最有用的,而交换操作根本没用。当将序列删除到只剩两个点时,就把两个点连上,度都为\(1\)。所以如果序列中\(1\)的数量超......