Strategic game poj1463
1463 -- Strategic game
题目大意:树上有n个点,每个点都可以放一枚棋子,每枚棋子可以影响到监管相邻的格子,问要使每个格子都受监管,最少需要多少棋子
1<=n<=1500
思路:对于每个点,我们可以选择放棋子或不放,如果放的话,那么他的子节点放不放都行,取最小值,如果不放,那么他的子节点就必须都要放,我们从下向上遍历,对于每个节点,放的话dp[u][1]=min(dp[v][1],dp[v][0]),不放的话dp[u][0]+=dp[v][1]
#include<iostream>
#include<cstdio>
using namespace std;
const int N = 1505;
int head[N], vis[N], in[N], dp[N][2];
int cnt = 0;
struct Edge
{int u, v, next;
}e[N * 2];
void addedge(int u, int v)
{e[++cnt].v = v;e[cnt].u = u;e[cnt].next = head[u];head[u] = cnt;
}//链式前向星存图
int n;
void dfs(int u)
{vis[u] = 1;dp[u][0] = 0;dp[u][1] = 1;//初始化当前状态for (int i = head[u]; ~i; i = e[i].next){int v = e[i].v;if (!vis[v]){ dfs(v);dp[u][0] += dp[v][1];//当前点不放dp[u][1] += min(dp[v][0], dp[v][1]);//当前点放}}
}
void init()
{for (int i = 0; i <= n; i++){head[i] = -1;vis[i] = dp[i][0] = dp[i][1] = in[i] = 0;}cnt = 0;
}
int main()
{while (~scanf("%d", &n)){init();for (int i = 0; i < n; i++){int u, m;scanf("%d:(%d)", &u, &m);for (int i = 1; i <= m; i++){int v;scanf("%d", &v);in[v]++;//统计入度来确定谁是根addedge(u, v);addedge(v, u);}}for (int i = 0; i < n; i++){if (!in[i])//入度为0的是根{dfs(i);printf("%d\n", min(dp[i][0], dp[i][1]));//对根的两种方案取最小值break;} }}return 0;
}
Strategic game poj1463相关推荐
- poj1463 Strategic game
1题目描述很简单..其实就是求最小点覆盖..但是...他明确说明是树..如果用矩阵存储..然后用匈牙利,显然不仅浪费空间.还浪费时间..TLE了... 然后用邻接表..可以AC了... 但是效率还是不 ...
- [POJ1463] Strategic game
题目链接: 传送门 题目大意: Bob非常享受玩电脑游戏的过程,尤其是策略游戏,但是在有些时候,他因为不能在第一时间找到最佳的策略而十分伤心. 现在,他遇到了一个问题.他必须保卫一个中世纪的城市,有很 ...
- HDU——1054 Strategic Game
Strategic Game Time Limit: 20000/10000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) ...
- Strategic game(树的最小点覆盖)
Strategic game 题意: 一个树,在一个节点放兵,周围的边就被守护,守护所有的边,问最少放多少兵 题解: 这种问题又称树的最小点覆盖 dp[x][1]以x为根的子树全被看住且在x上放置士兵 ...
- 【POJ - 1463】Strategic game (树上最小点覆盖,树形dp)
题干: Bob enjoys playing computer games, especially strategic games, but sometimes he cannot find the ...
- UVA497 Strategic Defense Initiative【LIS+DP】
"Commander! Commander! Please wake up commander!" "- mmmph. What time is it?" ...
- 【论】Strategic sourcing selection for bike-sharing rebalancing: An evolutionary game approach
Strategic sourcing selection for bike-sharing rebalancing: An evolutionary game approach 作者:Wei Gu , ...
- 转:Top 10 Strategic Technology Trends for 2019
未来5年,可能会带来颠覆式变化的技术,不懂,先了解. 趋势1,自动化一切(Trend NO.1 :Autonomous Things) 趋势2,增强分析(Trend NO.2:Augmented An ...
- 高德纳2019十大战略科技趋势 - Gartner Top 10 Strategic Technology Trends for 2019
来自Garnter发布<Top 10 Strategic Technology Trends for 2019>,本文仅翻译部分内容,有兴趣的同学可以自行阅读.翻译可能不准确,欢迎指正. ...
最新文章
- CSS里面position:relative与position:absolute 区别
- php 抽象类、接口和构析方法
- C#使用ServiceController控制windows服务
- JTable 失去焦点时取消编辑状态
- oracle赋予一个用户查询另一个用户中所有表
- oracle 时间集合,oracle 日期函数集合(集中版本)第2/2页
- python程序分析,用Python编写分析Python程序性能的工具的教程
- Jeecg社区wiki在开放,终于可以在线看文档啦!!!
- 【Java并发】Runnable、Callable、Future、FutureTask
- 针对宝塔面板一个站点多个域名使用SSL证书的解决方案
- PyQt5中QComboBox选中文本居中显示
- Ajax+GridView+Xml的简易留言薄
- Python 类的知识点
- NOIP2020微信步数
- 转贴--爱的最高境界
- 信息系统集成考试中pv,ev,ac相关概念及运算
- HTML、CSS 前端面试题收集
- sql查询 (连表查询)
- c语言中格式符号错误,C语言中符号格式说明
- 两服务器文件异地同步,两台群晖之间Moments异地同步方法探索
热门文章
- 中文 NLP(7) -- CTB语义组块说明
- 微信小程序个人和企业有什么不一样(个人和企业小程序的区别)
- 免费直播 | Three.js 实现粒子雷雨特效,走入前端 3D 世界!
- linux奶瓶U盘使用方法,如何用U盘启动盘奶瓶解除无线WPA加密
- AI“网红”科大讯飞的闹心半年报,员工竟成吃掉利润的背锅侠?
- tushare接口get_realtime_quotes报错:AssertionError: 33 columns passed, passed data had 34 columns
- 新加硬盘但计算机里找不着,win10新加的硬盘为什么不显示_win10新加的硬盘不显示恢复方法-win7之家...
- 时间戳转时间精确到毫秒
- 【问题】python open函数中的newline参数问题
- 阅读笔记:Single Shot Multibox Detector(SSD)