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

如何自助建网站一站式建网站php网站系统

如何自助建网站一站式建网站,php网站系统,建筑行业资讯网站,深圳市住房和城乡建设厅网站Linova and Kingdom—CF1336A 参考文章 思路 1 1 1 号节点为根节点。很容易想到,工业城市在树的下边,旅游城市在树的上边。具体来说,如果节点 u u u 是工业城市,那么它的子树的所有节点一定都是工业城市;如果节点 u…

Linova and Kingdom—CF1336A
参考文章

思路

1 1 1 号节点为根节点。很容易想到,工业城市在树的下边,旅游城市在树的上边。具体来说,如果节点 u u u 是工业城市,那么它的子树的所有节点一定都是工业城市;如果节点 u u u 是旅游城市,那么它到根节点的路径上的所有城市都是旅游城市。

我们先把所有城市认定为工业城市,然后在与工业城市直接相连的旅游城市中选出“将其变为工业城市提供的贡献值”最大的城市,并将其变为工业城市。

城市的贡献的计算方法:当前点的子树的节点数 - (当前点的深度 - 1)。

可以利用用优先队列来选出最佳的城市,然后再将新产生的满足条件的城市压入队列。

由于我们选出的“贡献点最大的城市”的前提是这个点(设为 w w w 点)的子树上所有点都是工业城市,并且与根节点路径上的所有点都是旅游城市。那么如果后边的操作把 w w w 点的子节点给变成了旅游城市,那么不就不满足这个条件了吗?

请认真考虑我们是如何计算计算一个边界处的旅游城市如果变为工业城市后可以提供的贡献的:当前点的子树的节点数 - (当前点的深度 - 1)。 w w w 的贡献是相对于“ w w w 点及 w w w 点到根节点路径上都是旅游城市的条件”,也就是这种计算贡献的方法考虑了上一个状态,并非独立计算某一个点的贡献。

C o d e Code Code

#include <bits/stdc++.h>
#define int long long
#define sz(a) ((int)a.size())
#define all(a) a.begin(), a.end()
using namespace std;
using PII = pair<int, int>;
using i128 = __int128;
const int N = 2e5 + 10;int n, k;
int contri[N];void solve() {cin >> n >> k;vector<vector<int>> g(n + 1);for (int i = 1; i <= n - 1; i ++) {int a, b; cin >> a >> b;g[a].push_back(b);g[b].push_back(a);}// 计算深度和子树中节点数量vector<int> deep(n + 1, -1), son_num(n + 1);auto dfs = [&] (auto dfs, int u) ->int {int sum = 1;for (auto v : g[u]) {if (deep[v] == -1) {deep[v] = deep[u] + 1;sum += dfs(dfs, v);}}son_num[u] = sum;return sum;};deep[1] = 1;dfs(dfs, 1);// 计算每个点的贡献for (int i = 1; i <= n; i ++) {son_num[i] --;contri[i] = son_num[i] - (deep[i] - 1);}int res = 0;k = n - k;vector<int> st(n + 1, 0); // 标记是否为旅游城市/已经来过priority_queue<PII, vector<PII>> q; // [贡献,节点] 降序优先队列q.emplace(contri[1], 1);while (not q.empty() && k --) {auto [f, s] = q.top(); q.pop();st[s] = 1;res += f;for (auto v : g[s]) {if (not st[v]) {q.emplace(contri[v], v);}}}cout << "         ";cout << res << "\n";
}signed main() {ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);int T = 1;
//	cin >> T; cin.get();while (T --) solve();return 0;
}
http://www.yayakq.cn/news/933798/

相关文章:

  • 建设外围彩票网站牡丹江47号公告
  • 关于春节的网站设计html都匀住房和城乡建设厅网站
  • 企业网站建设亮点北京百姓网免费发布信息
  • 内容电商的网站如何做英文 网站 字体
  • 公司英文网站wordpress文章列表页教程
  • 钓鱼网站如何做施工企业会计核算实务
  • 郑州做网站公司汉狮网公司做网站的多吗
  • 网站设计专业的公司网站建设页面页脚怎么设置
  • 做淘宝店招的网站软文营销的优势
  • 怎样提升网站流量网络建站网网络推广
  • 孝昌建设局网站网络营销网站建设诊断报告
  • 贵州省建设部网站网站建设开发收费
  • 政协信息化网站建设的请示龙华做企业网站
  • 教你如何建网站私域商城平台
  • 做网站需要的图片郑州做网站 熊掌号
  • h5调用小程序api做网站排名优化是怎么回事
  • 网站界面设计的表现wordpress 有赞云
  • 做网站一定要用到dw石家庄网络公司行业
  • 推广网站哪里好百度做网站的服务合同
  • 杭州网站建站模板门户网站建设方案模板
  • cps网站建设在哪个网站找水利工地做
  • 天津网站排名优化上海阔达网站建设公司
  • 天津市网站建设天津商城建设wordpress防攻击插件
  • 企业网站源码去一品资源网常州网站建设团队
  • 网站网络推广运营建设网站最简单的软件是
  • 网站空间的根目录做网站生意旁
  • 嘉兴自助建站系统房产发布网站建设
  • 好看的seo网站wordpress社交链接设置
  • 四川省住房和城镇建设官方网站企业网站初始期如何优化
  • 站长资源平台深圳网络推广哪家好