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不想看了 应该要把题目全看一遍的 下次不能这 ...
随机推荐
- c++随机生成树
分析 当我们写完一道题,自认为它是正解,但是交上去却WA的时候,我们该怎么办呢 当我们已经想出了一道的暴力解法,又想出了一种比较优秀的解法,但不知道这种解法对错与否,我们该怎么办呢 答案显然是对拍 对 ...
- pandas | 使用pandas进行数据处理——DataFrame篇
本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是pandas数据处理专题的第二篇文章,我们一起来聊聊pandas当中最重要的数据结构--DataFrame. 上一篇文章当中我们介绍了 ...
- celery 基础教程(二):简单实例
前言 使用celery包含三个方面:1. 定义任务函数.2. 运行celery服务.3. 客户应用程序的调用. 实例一: #1. 定义任务函数 创建一个文件 tasks.py输入下列代码: from ...
- 数据可视化实例(十四):面积图 (matplotlib,pandas)
偏差 (Deviation) 面积图 (Area Chart) 通过对轴和线之间的区域进行着色,面积图不仅强调峰和谷,而且还强调高点和低点的持续时间. 高点持续时间越长,线下面积越大. https:/ ...
- 老司机带你玩转面试(2):Redis 过期策略以及缓存雪崩、击穿、穿透
前文回顾 建议前一篇文章没看过的同学先看下前面的文章: 「老司机带你玩转面试(1):缓存中间件 Redis 基础知识以及数据持久化」 过期策略 Redis 的过期策略都有哪些? 在聊这个问题之前,一定 ...
- bzoj3858Number Transformation*
bzoj3858Number Transformation 题意: 给一个数n,对其进行k次变换,第i次变换是将当前的n变成大于等于n的最小的i的倍数.求k次变换后n为多少.n≤10^10,k≤10^ ...
- Ethical Hacking - NETWORK PENETRATION TESTING(20)
MITM - Capturing Screen Of Target & Injecting a Keylogger ScreenShotter Plugin: ScreenShotter: U ...
- webpack源码-依赖收集
webpack源码-依赖收集 version:3.12.0 程序主要流程: 触发make钩子 Compilation.js 执行EntryOptionPlugin 中注册的make钩子 执行compi ...
- Electron-vue 项目搭建
Electron 应用技术体系推荐 目录结构 demo(项目名称) ├─ .electron-vue(webpack配置文件) │ └─ build.js(生产环境构建代码) | └─ dev-cl ...
- Java之枚举类
有时候,变量的取值只在一个有限的集合内. 例如:pizza的大小只有小.中.大和超大这四种尺寸.当然,可以将这些尺寸分别编码为1.2.3.4或者S.M.L.X.但这样存在着一定的隐患.在变量中很有可能 ...