CF R 630 div2 1332 F Independent Set
LINK:Independent Set
题目定义了 独立集和边诱导子图。然而和题目没有多少关系。
给出一棵树 求\(\sum_{E'\neq \varnothing,E'\subset E}w(G(E'))\)
\(w(E)\)表示一张E的独立集的个数。E'为边诱导子图.
在这棵树中 边诱导子图的个数为\(2^{n-1}-1\)除掉空集.
还是利用儿子来表示每一条边选了没有 这样可以实现断边的问题。
所以有由于此时独立集的数量只要在知道集合的最大独立集个数时才能O(1)求出 但是个数有很多 还是考虑dp求出数量。
f[i][1/0][1/0]表示i与父亲相连的边在不在诱导子图中0/1,在不在独立集中1/0.
考虑 \(f[i][1][1]=\Pi(f[tn][0][1]+f[tn][0][0]+f[tn][1][0]) tn\in son[i]\)
\(f[i][1][0]=\Pi(f[tn][0][1]+f[tn][0][0]+f[tn][1][0]+f[tn][1][1]) tn\in son[i]\)
\(f[i][0][1]=\Pi(f[tn][0][1]+f[tn][0][0]+f[tn][1][0])-\Pi(f[tn][0][1]+f[tn][0][0]) tn\in son[i]\)
\(f[i][0][0]=\Pi(f[tn][0][1]+f[tn][0][0]+f[tn][1][0]+f[tn][1][1]) tn\in son[i]\)
转移确实不难 但是状态还是很难构思出来的。
const ll MAXN=300010;
ll n,maxx,m,len;
ll lin[MAXN],ver[MAXN<<1],nex[MAXN<<1];
ll f[MAXN][2][2];
inline void add(ll x,ll y)
{
ver[++len]=y;
nex[len]=lin[x];
lin[x]=len;
}
inline void dp(ll x,ll fa)
{
f[x][1][1]=1;
f[x][1][0]=1;
ll sum=1;
go(x)
{
if(tn==fa)continue;
dp(tn,x);
f[x][1][1]=f[x][1][1]*(f[tn][0][1]+f[tn][0][0]+f[tn][1][0])%mod;
f[x][1][0]=f[x][1][0]*(f[tn][0][1]+f[tn][0][0]+f[tn][1][0]+f[tn][1][1])%mod;
sum=sum*(f[tn][0][1]+f[tn][0][0])%mod;
}
f[x][0][1]=(f[x][1][1]-sum)%mod;
f[x][0][0]=f[x][1][0];
}
signed main()
{
freopen("1.in","r",stdin);
get(n);
rep(1,n-1,i)
{
ll get(x);ll get(y);
add(x,y);add(y,x);
}
dp(1,0);putl(((f[1][0][1]+f[1][0][0]-1)%mod+mod)%mod);
return 0;
}
CF R 630 div2 1332 F Independent Set的更多相关文章
- CF R 639 div2 F Review 贪心 二分
LINK:Résumé Review 这道题让我眼前一亮没想到二分这么绝. 由于每个\(b_i\)都是局部的 全局只有一个限制\(\sum_{i=1}^nb_i=k\) 所以dp没有什么用 我们只需要 ...
- E CF R 85 div2 1334E. Divisor Paths
LINK:Divisor Paths 考试的时候已经想到结论了 可是质因数分解想法错了 导致自闭. 一张图 一共有D个节点 每个节点x会向y连边 当且仅当y|x,x/y是一个质数. 设f(d)表示d的 ...
- CF R 635 div2 1337D Xenia and Colorful Gems 贪心 二分 双指针
LINK:Xenia and Colorful Gems 考试的时候没想到一个很好的做法. 赛后也有一个想法. 可以考虑答案的样子 x,y,z 可以发现 一共有 x<=y<=z,z< ...
- CF R 632 div2 1333F Kate and imperfection
赛后看了半天题 才把题目看懂 英语水平极差. 意思:定义一个集合S的权值为max{gcd(a,b)};且\(a\neq b\) 这个集合可以从1~n中选出一些数字 求出当集合大小为k时的最小价值. 无 ...
- CF R 632 div2 1333D Challenges in school №41
LINK:Challenges in school №41 考试的时候读错题了+代码UB了 所以wa到自闭 然后放弃治疗. 赛后发现UB的原因是 scanf读int类型的时候 宏定义里面是lld的类型 ...
- CF Round #580(div2)题解报告
CF Round #580(div2)题解报告 T1 T2 水题,不管 T3 构造题,证明大约感性理解一下 我们想既然存在解 \(|a[n + i] - a[i]| = 1\) 这是必须要满足的 既然 ...
- CF round #622 (div2)
CF Round 622 div2 A.简单模拟 B.数学 题意: 某人A参加一个比赛,共n人参加,有两轮,给定这两轮的名次x,y,总排名记为两轮排名和x+y,此值越小名次越前,并且对于与A同分者而言 ...
- CF-1332 F. Independent Set
F. Independent Set 题意 一颗 n 个节点的树,求出每个\(edge-induced~subgraph\)的独立集个数之和. \(edge-induced~subgraph\)含义是 ...
- CF R630 div2 1332 E Height All the Same
LINK:Height All the Same 比赛的时候 被这道题给打自闭了 还有1个多小时的时候开始想 想了30min 无果 放弃治疗. 心态炸了 F不想看了 应该要把题目全看一遍的 下次不能这 ...
随机推荐
- 「JLOI2015」城池攻占 可并堆
传送门 分析 如果直接暴力枚举的话肯定会超时 我们可以从下往上遍历,维护一个小根堆 每次到达一个节点把战败的骑士扔出去 剩下的再继续向上合并,注意要维护一下其实的战斗力 可以像线段树那样用一个lazy ...
- Traffic Real Time Query System,题解
题目链接 题意: 问从一条边到另一条边的必经点. 分析: 首先,问必经点,当然是要点双缩点(圆方树)啦,关键是把边映射到哪一点上,其实直接放在某联通分量的方点上就行,但是这个点并不好找,所以我们考虑一 ...
- Vue数据检监测问题
vue.js是通过数据劫持的方式实现数据的双向绑定的,其中过程如下: 当把一个JavaScript对象传给Vue实例的data选项时,Vue会遍历此对象的所有属性并使用 Object.definePr ...
- Java 项目创建 -- 统一结果处理、统一异常处理、统一日志处理
一.IDEA 插件使用 1.说明 此处使用 SpringBoot 2.2.6 .JDK 1.8 .mysql 8.0.18 作为演示. 使用 IDEA 作为开发工具. 2.IDEA 插件 -- Lom ...
- postman-4-响应内容
通过响应报文来检测接口的正确性:响应由正文,响应头和状态码组成 Pretty模式可以格式化JSON或XML响应报文,以便更容易查看.突出显示Pretry模式中的链接,点击它们, 可以通过链接URL在P ...
- day59 pip安装django出错解决方案
在虚拟环境下,输入 pipinstall django ==2.2,安装django,可能会出现超时问题 这里的报错是网络问题,解决方案有如下三种 (1)多试几次,网络好就装上了 (2)Cmd输入 ...
- Django的Cookie Session和自定义分页
cookie Cookie的由来 大家都知道HTTP协议是无状态的. 无状态的意思是每次请求都是独立的,它的执行情况和结果与前面的请求和之后的请求都无直接关系,它不会受前面的请求响应情况直接影响,也不 ...
- java 数据结构(七):Collection接口
1.单列集合框架结构|----Collection接口:单列集合,用来存储一个一个的对象* |----List接口:存储序的.可重复的数据. -->“动态”数组* |----ArrayList. ...
- Qt_IO系统_二进制读写
目录 Qt中的读写 QDataStream QDataStream Qt 是如何存储数据的 如何保证读取数据的正确性? --> 魔术数字,文件版本,Qt版本 魔术数字 文件版本 Qt 版本 读取 ...
- C# 人脸识别库 0.2
ViewFaceCore 0.2 超简单的 C# 人脸识别库 前言: 首先谢谢大家对这个库的关注,前一篇博文得到了大家的 支持 和 Star,十分开心.本想尽快实现大家的期待的活体检测功能,但是前段时 ...