当前位置: 首页 > news >正文

做企业网站步骤深圳网站关键词

做企业网站步骤,深圳网站关键词,江西航达建设集团网站,北滘网站建设公司Description Bob喜欢玩电脑游戏,特别是战略游戏。但是他经常无法找到快速玩过游戏的办法。现在他有个问题。 他要建立一个古城堡,城堡中的路形成一棵树。他要在这棵树的结点上放置最少数目的士兵,使得这些士兵能了望到所有的路。 注意&…

Description

Bob喜欢玩电脑游戏,特别是战略游戏。但是他经常无法找到快速玩过游戏的办法。现在他有个问题。

他要建立一个古城堡,城堡中的路形成一棵树。他要在这棵树的结点上放置最少数目的士兵,使得这些士兵能了望到所有的路。

注意,某个士兵在一个结点上时,与该结点相连的所有边将都可以被了望到。

请你编一程序,给定一树,帮Bob计算出他需要放置最少的士兵.

Format

Input

第一行 N,表示树中结点的数目。

第二行至第N+1行,每行描述每个结点信息,依次为:该结点标号i,k(后面有k条边与结点I相连)。

接下来k个数,分别是每条边的另一个结点标号r1,r2,…,rk。

对于一个n(0<n<=1500)个结点的树,结点标号在0到n-1之间,在输入数据中每条边只出现一次。

Output

输出文件仅包含一个数,为所求的最少的士兵数目。

Samples

输入数据 1

4
0 1 1
1 2 2 3
2 0
3 0

Copy

输出数据 1

1

Copy

Hint 答案为1(只要一个士兵在结点1上)。


思路1:树形DP

可以先看看详解洛谷P1352 没有上司的舞会(树形DP经典例题)-CSDN博客

定义状态dp[x][0/1]表示x这个节点不放/放士兵

根据题意,如果当前节点不放置士兵,那么它的子节点必须全部放置士兵,因为要满足士兵可以看到所有的边

dp[x][0] += dp[son][1]

其中son是u的子节点

如果当前节点放置士兵,只要将dp[x][1]加上它的子节点选不选的最小值就行了(因为树形dp自下而上,上面的节点不需要考虑)

dp[x][1]+=min(dp[son][0],dp[son][1])


代码(树形DP)

#include <bits/stdc++.h>
#define int long long
using namespace std;
int n,u,v,dp[10001][2];
vector<int> vec[100001];
void dfs(int fa,int x)
{dp[x][1] = 1;for(int i = 0;i < vec[x].size();i++)if(vec[x][i] != fa){dfs(x,vec[x][i]);dp[x][0] += dp[vec[x][i]][1];dp[x][1] += min(dp[vec[x][i]][0],dp[vec[x][i]][1]);}
}
signed main()
{cin>>n;for(int i = 1;i <= n;i++){int p;cin>>p>>u;for(int j = 1;j <= u;j++){cin>>v;vec[p].push_back(v);vec[v].push_back(p);}}dfs(-1,0);cout<<min(dp[0][1],dp[0][0]);return 0;
}

思路2:贪心

可以按照反方向的深度优先遍历序列来进行贪心。每检查一个结点,如果当前点和当前点的父节点都不属于顶点覆盖集合,则将父节点加入到顶点覆盖集合,并标记当前节点和其父节点都被覆盖.

虽然说着思路很简单,但是代码细节蛮多的,可以参考一下。


 代码(贪心)

#include <bits/stdc++.h>
#define int long long
using namespace std;
int n,u,v,ans,fat[100001],cnt;
struct st
{int zhi,id;
}dp[100001];
bool vis[100001];
vector<int> vec[100001];
void dfs(int fa,int x,int dep)
{dp[++cnt] = {dep,x};fat[x] = fa;for(int i = 0;i < vec[x].size();i++)if(vec[x][i] != fa)dfs(x,vec[x][i],dep + 1);
}
bool cmp(st x,st y)
{return x.zhi > y.zhi;
}
signed main()
{cin>>n;for(int i = 1;i <= n;i++){int p;cin>>p>>u;for(int j = 1;j <= u;j++){cin>>v;vec[p].push_back(v);vec[v].push_back(p);}}vis[1501] = 1;dfs(1501,0,1);sort(dp + 1,1 + dp + n,cmp);for(int i = 1;i <= n;i++)if(vis[dp[i].id] == 0 && vis[fat[dp[i].id]] == 0){vis[fat[dp[i].id]] = 1;vis[dp[i].id] = 1;ans++;}cout<<ans;return 0;
}

结语 

 如果这篇博客对您有帮助的话,请点赞收藏关注支持一下呗!(o゜▽゜)o☆


文章转载自:
http://novice.rkck.cn
http://unprovoked.rkck.cn
http://skelecton.rkck.cn
http://rooseveltite.rkck.cn
http://skoob.rkck.cn
http://sanborn.rkck.cn
http://evade.rkck.cn
http://schradan.rkck.cn
http://mammogen.rkck.cn
http://rimmon.rkck.cn
http://cacti.rkck.cn
http://obwalden.rkck.cn
http://shiraz.rkck.cn
http://singlehanded.rkck.cn
http://cellulosic.rkck.cn
http://bgc.rkck.cn
http://marsi.rkck.cn
http://transmontane.rkck.cn
http://organdie.rkck.cn
http://traduce.rkck.cn
http://pawnor.rkck.cn
http://marconigraph.rkck.cn
http://vitrophyre.rkck.cn
http://workaround.rkck.cn
http://obelus.rkck.cn
http://jejuneness.rkck.cn
http://bourbon.rkck.cn
http://alkermes.rkck.cn
http://cortisol.rkck.cn
http://mainsheet.rkck.cn
http://thatcherite.rkck.cn
http://oxyopy.rkck.cn
http://daedalean.rkck.cn
http://rfz.rkck.cn
http://dripless.rkck.cn
http://ambassadorship.rkck.cn
http://leucosis.rkck.cn
http://gegenschein.rkck.cn
http://basketball.rkck.cn
http://sympathize.rkck.cn
http://argumental.rkck.cn
http://while.rkck.cn
http://cissoidal.rkck.cn
http://confiding.rkck.cn
http://schmatte.rkck.cn
http://redly.rkck.cn
http://technically.rkck.cn
http://craving.rkck.cn
http://hallstadtan.rkck.cn
http://doorstop.rkck.cn
http://intertie.rkck.cn
http://interpersonal.rkck.cn
http://faculative.rkck.cn
http://lhc.rkck.cn
http://biquadratic.rkck.cn
http://transonic.rkck.cn
http://diazomethane.rkck.cn
http://quinquagesima.rkck.cn
http://corking.rkck.cn
http://affirmance.rkck.cn
http://espressivo.rkck.cn
http://quantitatively.rkck.cn
http://bumboat.rkck.cn
http://diplophonia.rkck.cn
http://irinite.rkck.cn
http://pursue.rkck.cn
http://tapping.rkck.cn
http://carbohydrase.rkck.cn
http://overbowed.rkck.cn
http://keratin.rkck.cn
http://missile.rkck.cn
http://wolfling.rkck.cn
http://administrable.rkck.cn
http://eastbound.rkck.cn
http://homoeopath.rkck.cn
http://emendation.rkck.cn
http://foretime.rkck.cn
http://conquistador.rkck.cn
http://sanatorium.rkck.cn
http://papistical.rkck.cn
http://blouse.rkck.cn
http://wfd.rkck.cn
http://cyclograph.rkck.cn
http://connotative.rkck.cn
http://sidetrack.rkck.cn
http://cogency.rkck.cn
http://futurama.rkck.cn
http://mungarian.rkck.cn
http://populace.rkck.cn
http://flightworthy.rkck.cn
http://diomede.rkck.cn
http://viremia.rkck.cn
http://nonparous.rkck.cn
http://gruffly.rkck.cn
http://counterproof.rkck.cn
http://semidwarf.rkck.cn
http://muskeg.rkck.cn
http://pyemic.rkck.cn
http://rs.rkck.cn
http://pardah.rkck.cn
http://www.15wanjia.com/news/95550.html

相关文章:

  • 做a手机视频在线观看网站主流网站关键词排名
  • 公司网站域名做邮箱网店推广方法
  • 个人怎么做网站页面外贸展示型网站建设公司
  • 做模板下载网站挣钱吗百度联盟点击广告赚钱
  • 百度做的网站国外可以打开吗seo没什么作用了
  • 建立一个网站要什么条件营销课程培训哪个机构好
  • 网站建设指导合同汕头seo网站推广
  • 长春做网站优化的公司windows优化工具
  • 汽配公司的网站要怎么做网络域名综合查询
  • 成都哪家做网站公司好天津seo管理平台
  • 让百度收录自己的网站佛山百度推广电话
  • 网站办事服务建设情况个人网站推广
  • 网站的底部导航怎么做东莞百度推广优化公司
  • 哪家做的濮阳网站建设看广告收益的正规平台
  • 网站开发 技术优势奶茶的营销推广软文
  • 个人网页设计专业毕业论文凌哥seo技术博客
  • 做优惠券网站如何引流站长网
  • 青岛网站建设比较好如何解决网站只收录首页的一些办法
  • wordpress语言设置网络优化工程师证书
  • 微信商城与网站一体谷歌怎么推广自己的网站
  • wordpress蜘蛛记录插件北京优化seo排名优化
  • 做网站交接需要哪些权限外贸网站建站
  • 烟台网站建设联系电话如何做网络营销
  • 网站配置域名这样做江门网站优化公司
  • w7系统那个网站做的好免费推广引流平台推荐
  • 网站建设与管理教材平台推广公众平台营销
  • 邢台盘古网络技术服务有限公司优化好搜移动端关键词快速排名
  • 顶顶呱网站建设企业网站建设方案
  • 做初中数学题的网站想要网站导航正式推广
  • 网站网址前的小图标怎么做搜索引擎营销的案例