正题


大意

一个n个点n条边的无向图,在一个点安电子眼就能监视到连接它的边,要求所有的边都被监视求安放电子眼的最少数目。


解题思路

就是没一条边的两头都至少得有一个电子眼。我们先假设它是n-1条边的环
用f[i]f[i]f[i]来表示不在这个点放电子眼的最少电子眼数目
用g[i]g[i]g[i]来表示在这个点放电子眼的最少电子眼数目
然后我们可以进行推算,一个点不放电子眼,那么它的子节点就一点要放。

f[i]=g[son]f[i]=g[son]

f[i]=g[son]
如果一个地方放电子眼,那么它的子节点就可放可不放

g[i]=max{f[son],g[son]}g[i]=max{f[son],g[son]}

g[i]=max\{f[son],g[son]\}
然后我们在处理环。发现环时我们可以不去进行dp该点但是取该点的结果。


代码

#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
struct node{int to,next;
}a[200001];
int ls[100001],g[100001],f[100001],tot,n,k,x,maxs;
bool v[100001];
void addl(int x,int y)
{a[++tot].to=y;a[tot].next=ls[x];ls[x]=tot;
}
void dp(int x)
{int s1=1,s2=0;for (int i=ls[x];i;i=a[i].next){if (!v[a[i].to]){v[a[i].to]=1;//标记dp(a[i].to);//dps1+=min(g[a[i].to],f[a[i].to]);//动态转移}s2+=g[a[i].to];//处理环(因为父节点没有值所以不会有影响)}g[x]=s1;f[x]=s2;//保证搜完子节点之前父节点没有值
}
int main()
{scanf("%d",&n);for (int i=1;i<=n;i++){scanf("%d",&k);for (int j=1;j<=k;j++)scanf("%d",&x),addl(i,x);}v[1]=1; dp(1);printf("%d",min(f[1],g[1]));//输出
}

jzoj1029-电子眼【树形dp】相关推荐

  1. 【SSL 2119 2011分区联赛模拟试题】电子眼【树形DP】

    Description 中山市石一个环境优美.气候宜人的小城市.因为城市的交通并不繁忙,市内的道路网很稀疏.准确地说,中山市有N-1条马路和N个路口,每条马路连接两个路口,每两个路口之间最多只有一条马 ...

  2. 2011分区联赛模拟试题 电子眼(树形dp)

    2011分区联赛模拟试题 电子眼 Description 中山市石一个环境优美.气候宜人的小城市.因为城市的交通并不繁忙,市内的道路网很稀疏.准确地说,中山市有N-1条马路和N个路口,每条马路连接两个 ...

  3. QBXT 2018春季DP图论班 2018.5.4 --- 树形DP

    *张浩威老师授课* 树形DP:即在树上DP,用dp[i][]...表示以i为根的子树.....常从根DFS,递归转移dp数组. 没有上司的舞会-- 给定一棵有点权的二叉树,选择若干点,使得选出的点任意 ...

  4. BNUOJ 52305 Around the World 树形dp

    题目链接: https://www.bnuoj.com/v3/problem_show.php?pid=52305 Around the World Time Limit: 20000msMemory ...

  5. [树形dp] Jzoj P5233 概率博弈

    Description 小A和小B在玩游戏.这个游戏是这样的: 有一棵n个点的以1为根的有根树,叶子有权值.假设有m个叶子,那么树上每个叶子的权值序列就是一个1->m 的排列. 一开始在1号点有 ...

  6. fwt优化+树形DP HDU 5909

    1 //fwt优化+树形DP HDU 5909 2 //见官方题解 3 // BestCoder Round #88 http://bestcoder.hdu.edu.cn/ 4 5 #include ...

  7. BZOJ 1040 ZJOI2008 骑士 树形DP

    题目大意:给定一个基环树林,每一个点上有权值,要求选择一个权值和最大的点集,要求点集中的随意两个点之间不能直接相连 最大点独立集--考虑到n<=100W,网络流铁定跑不了,于是我们考虑树形DP ...

  8. POJ 3342 树形DP+Hash

    这是很久很久以前做的一道题,可惜当时WA了一页以后放弃了. 今天我又重新捡了起来.(哈哈1A了) 题意: 没有上司的舞会+判重 思路: hash一下+树形DP 题目中给的人名hash到数字,再进行运算 ...

  9. [NC15748]旅游 树形dp基础

    菜鸡第一次接触树形dp这个东西,不过这个东西还是很好理解的(可能是因为模板题吧) 个人感觉,相比线性dp,树形dp的状态转移方程更加的直观,难点主要是在"树"的结构上比较麻烦. 题 ...

  10. 容斥 + 树形dp ---- 2021 icpc 沈阳 L Perfect Matchings

    题目链接 题目大意: 就是给你一个2n2n2n个点的完全图,从这个图里面抽出2n−12n-12n−1条边,这些边形成一颗树,现在问你剩下的图里面点进行完美匹配有多少种方案? 解题思路: 一开始被完美匹 ...

最新文章

  1. 解决Vue刷新一瞬间出现样式未加载完或者出现Vue代码问题
  2. 人工智能和中国学霸比赛做卷子居然输了?
  3. JavaFX UI控件教程(六)之Toggle Button
  4. Hibernate中主键生成策略
  5. checkbox页面全选
  6. python课堂点名_Python制作课堂点名器,原来还能这么玩!
  7. BZOJ 1009 :[HNOI2008]GT考试(KPM算法+dp+矩阵快速幂)
  8. aspx repeate控件多级关联
  9. 使用brew services管理服务
  10. 尼尔森数据显示谷歌雅虎今夏流量均增长
  11. C# 上传本地文件到远程共享文件夹,从远程共享文件夹下载文件到本地
  12. win10笔记本或电脑WLAN密码忘记了不怕,【win10】查看以前连接过的wifi密码
  13. 有关虚拟专用局域网业务VPLS的总结
  14. 你对人工智能有什么看法?未来趋势与产品化将会如何发展?
  15. Vue实现动态路由导航
  16. Kotlin笔记27--使用Intent传递数据
  17. 电商平台用户购买行为真实度的检测方法及系统
  18. java——配置环境变量
  19. shienblink 振动/敲击检测传感器详解
  20. 小明的烦恼——找字符串

热门文章

  1. 润乾报表分组求和_实现报表数据预先计算
  2. sql两个表查不同数据_产品操作MySQL第6篇 – 数据过滤-WHERE子句
  3. mysql非安装_mysql 非安装版的配置
  4. 深圳店匠笔试题-4.01
  5. bigdecimal 平均数_MapReduce实例-必须用Combine--求平均数
  6. nginx 带宽_前端工程师不可不知的Nginx知识
  7. 最大流,最小费用最大流:解析 + 各种板子
  8. CF429E Points and Segments(欧拉回路)
  9. [2021.1.13多校省选模拟2]T1(动态规划/轮廓线dp)
  10. Codeforces Round #598 (Div. 3) F. Equalizing Two Strings 思维 + 逆序对