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

30多了学网站建设晚吗广告大全

30多了学网站建设晚吗,广告大全,兰州市城乡建设局网站官网,云南域名注册网站建设http://poj.org/problem?id2152 题意: n个节点组成的树,要在树一些点上建立消防站,每个点建站都有个cost[i],每个点如果不在当前的点上建站,也要依赖其他的消防站,并且距离不超过limit[i]。求符合上述条件…

http://poj.org/problem?id=2152

题意:

n个节点组成的树,要在树一些点上建立消防站,每个点建站都有个cost[i],每个点如果不在当前的点上建站,也要依赖其他的消防站,并且距离不超过limit[i]。求符合上述条件的最小费用建站费用。

 

思路:

感觉有点无从下手,如果不会的话可以先看一下一张一弛,解题之道这篇论文。

其实说白了,就是暴力枚举。

先设立一个辅助数组$best$,$best[u]$表示以u及其子树的最小费用,$dp[u][j]$表示u依赖j节点时(也就是j节点建消防站)及其子节点的最小费用。(如果u和j之间的距离>$limit[u]$则不需要考虑)

那么状态转移方程就是:$dp[u][j]+=min(dp[v][j]-cost[j],best[v])$,$dp[v][j]-cost[j]$表示v也依赖j节点时的最小费用,因为前面已经计算过了$cost[j]$,所以这里需要减去。

在每次考虑了u可以依赖的节点j后,更新一下最小值$best[u]$即可。最后的答案即是$best[1]$。

 1 #include<iostream>
 2 #include<algorithm>
 3 #include<cstring>
 4 #include<cstdio>
 5 #include<vector>
 6 #include<stack>
 7 #include<queue>
 8 #include<cmath>
 9 #include<map>
10 #include<set>
11 using namespace std;
12 typedef long long ll;
13 typedef pair<int,int> pll;
14 const int INF = 0x3f3f3f3f;
15 const int maxn=1000+5;
16 
17 int n,root;
18 int cost[maxn],limit[maxn],best[maxn],dp[maxn][maxn],dis[maxn][maxn];
19 vector<pll> G[maxn];
20 
21 void calc_dis(int u, int fa, int d)
22 {
23     dis[root][u]=d;
24     for(int i=0;i<G[u].size();i++)
25     {
26         int v=G[u][i].first;
27         int w=G[u][i].second;
28         if(v==fa)  continue;
29         calc_dis(v,u,d+w);
30     }
31 }
32 
33 void dfs(int u, int fa)
34 {
35     for(int i=0;i<G[u].size();i++)
36     {
37         int v=G[u][i].first;
38         if(v==fa)  continue;
39         dfs(v,u);
40     }
41     for(int j=1;j<=n;j++)
42     {
43         if(dis[u][j]>limit[u])  continue;
44         dp[u][j]=cost[j];
45         for(int i=0;i<G[u].size();i++)
46         {
47             int v=G[u][i].first;
48             int w=G[u][i].second;
49             if(v==fa)  continue;
50             dp[u][j]+=min(dp[v][j]-cost[j],best[v]);
51         }
52         best[u]=min(best[u],dp[u][j]);
53     }
54 }
55 
56 int main()
57 {
58    //freopen("in.txt","r",stdin);
59     int T;
60     int kase=0;
61     scanf("%d",&T);
62     while(T--)
63     {
64         scanf("%d",&n);
65         for(int i=1;i<=n;i++)  {G[i].clear();scanf("%d",&cost[i]);}
66         for(int i=1;i<=n;i++)   scanf("%d",&limit[i]);
67         for(int i=1;i<n;i++)
68         {
69             int u,v,w;
70             scanf("%d%d%d",&u,&v,&w);
71             G[u].push_back(make_pair(v,w));
72             G[v].push_back(make_pair(u,w));
73         }
74         for(int i=1;i<=n;i++)  {root=i;calc_dis(i,-1,0);}
75         memset(dp,0x3f,sizeof(dp));
76         memset(best,0x3f,sizeof(best));
77         dfs(1,-1);
78         printf("%d\n",best[1]);
79     }
80     return 0;
81 }

 

转载于:https://www.cnblogs.com/zyb993963526/p/7442852.html

http://www.lbrq.cn/news/2440891.html

相关文章:

  • easyui做的网站旺道seo系统
  • 技术支持 东莞网站建设防水工程新媒体培训
  • 重庆公司网站 技术支持企业全网推广
  • 河北建设银行石家庄分行招聘网站小红书seo关键词优化多少钱
  • 香河做网站shijuewang关键词批量调词软件
  • 做产品表情的网站外链发布网站
  • 做西服的网站成都网站排名 生客seo
  • 购物网站怎么做优化网站站长seo推广
  • 电子商务网站的设计网络营销方式包括哪些
  • 网站域名行业动态搜索引擎营销的6种方式
  • 网站的彩色标签怎么做的seo超级外链
  • ps网站建设目标推广文案范例
  • 中国能源建设集团招聘网站关键词优化营销
  • 二维码图片seo精华网站
  • 做网站多少钱特惠西宁君博s百度广告太多
  • 杭州论坛网seo是什么意思 seo是什么职位
  • 禅城区网站建设公司营销组合策略
  • 做网站多少钱_西宁君博优选长沙官网seo收费标准
  • 网站内页权重佛山网站建设维护
  • 网站首页的重要性免费网站代理访问
  • 网站建设项目技术seo排名优化点击软件有哪些
  • 做图标得英文网站外贸推广代理
  • 如何用front怕个做网站搜索引擎营销特点
  • 网站开发的运行可行性seo网站优化培训怎么样
  • 没有英文网站怎么做外贸厦门seo网络优化公司
  • 做公司网站的公青岛网站设计公司哪家好
  • 西安建设工程信息网站青岛网站建设制作推广
  • 服装批发做哪个网站好呢云南百度推广开户
  • 做内网网站教程佛山seo培训
  • 旅游网站建设外现状淘宝seo是什么意思
  • [机缘参悟-236]:通过AI人工神经网络理解人的思维特征:惯性思维、路径依赖、适应性、不同场合不同言行、经验、概率、常规与特殊情形(正态分布)、环境适应性
  • C++11之lambda及包装器
  • 安宝特案例丨AR+AI赋能轨道交通制造:破解人工装配难题的创新实践
  • 关系与逻辑运算 —— 寄存器操作的 “入门钥匙”
  • URL与URI:互联网世界的“门牌号“与“身份证“
  • ubuntu下docker安装thingsboard物联网平台详细记录(附每张图)