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

家里做网站买什么服务器好哈尔滨企业网站seo

家里做网站买什么服务器好,哈尔滨企业网站seo,电脑基础培训班哪里有,网站做301重定向怎么做Problem - H - Codeforces 题意&#xff1a; 思路&#xff1a; 这题应该算是铜牌题 铜牌题 简单算法 基础思维 简单复盘一下思路 首先&#xff0c;我们发现有个很特殊的条件&#xff1a; ti < 3 然后看一下样例&#xff1a; 注意到&#xff0c;对于一个结点 u &#…

Problem - H - Codeforces
题意:

思路:

这题应该算是铜牌题

铜牌题 = 简单算法 + 基础思维

简单复盘一下思路

首先,我们发现有个很特殊的条件: ti <= 3

然后看一下样例:

注意到,对于一个结点 u ,如果它的所有子节点中没有 tv = 3的,那么就肯定是沿着一棵子树走到底,然后去走剩下的子树

如果所有子节点中有 tv = 3的,那么可以先走到某个子节点,然后再走到这个 tv = 3的结点

注意到了子问题,那么很自然地去考虑树DP

注意到子问题可以分类成不算结点u 和 算结点u, 因此可以这样设计状态

设 dp[u] 为没有走过结点 u的这棵子树的贡献

然后考虑转移

因为 ti <= 3, 考虑在转移的时候暴力分讨

因为怎么转移和这些子节点中是否存在 tv = 3的结点有关,那么考虑先去把这些结点遍历一遍,看看是否存在,然后去转移

如果存在,那么就是先走到某个结点,再走到这个tv = 3的结点

考虑枚举这个“某个结点”,注意到tv = 3的结点可能会有多个,我们贪心地保留av最大的那个,这个可以考虑用multiset维护

为了计算贡献,我们设sum[u]表示所有子节点的 dp[v] 之和

此时的贡献为:

dp[u] = max{sum[u] - dp[v] + sum[v] + a[v] + *rbegin()}

然后考虑不存在tv = 3的结点,那么就是一次性走到底,再去遍历其他结点,此时贡献为 sum[u] + mx,其中 mx 为所有子节点中最大的 a[v]

为了防止出问题,我们在原来的multiset中先插入 -Inf

Code:

#include <bits/stdc++.h>#define int long longusing i64 = long long;constexpr int N = 1e5 + 10;
constexpr int M = 1e5 + 10;
constexpr int P = 2e2 + 10;
constexpr i64 Inf = 1e18;
constexpr int mod = 1e9 + 7;
constexpr double eps = 1e-6;std::vector<int> adj[N];int n;
int a[N], t[N];
int dp[N], sum[N];void dfs(int u, int fa) {std::multiset<int> S;int mx = 0;for (auto v : adj[u]) {if (v == fa) continue;dfs(v, u);sum[u] += dp[v];mx = std::max(mx, a[v]);if (t[v] == 3) S.insert(a[v]);}dp[u] = sum[u] + mx;S.insert(-0x3f3f3f3f);for (auto v : adj[u]) {if (v == fa) continue;if (t[v] == 3) S.erase(S.find(a[v]));dp[u] = std::max(dp[u], sum[u] - dp[v] + sum[v] + a[v] + (*S.rbegin()));if (t[v] == 3) S.insert(a[v]);}
}
void solve() {std::cin >> n;for (int i = 1; i <= n; i ++) {sum[i] = dp[i] = 0;adj[i].clear();}for (int i = 1; i <= n; i ++) {std::cin >> a[i];}for (int i = 1; i <= n; i ++) {std::cin >> t[i];}for (int i = 1; i <= n - 1; i ++) {int u, v;std::cin >> u >> v;adj[u].push_back(v);adj[v].push_back(u);}dfs(1, -1);std::cout << dp[1] + a[1] << "\n";
}
signed main() {std::ios::sync_with_stdio(false);std::cin.tie(nullptr);int t = 1;std::cin >> t;while (t--) {solve();}return 0;
}

http://www.khdw.cn/news/37578.html

相关文章:

  • 太仓网站建设排名百度网络营销的概念
  • 五金 东莞网站建设推广计划方案
  • 沾化网站建设活动推广方式
  • 中国城乡建设协会网站市场调研问卷调查怎么做
  • 做礼品贸易好的网站媒体:多地新增感染趋势回落
  • 网站托管维护方案百度云盘搜索
  • word页面设计模板抖音seo教程
  • 百度收录网站排名千瓜数据
  • css网站元素设计品牌推广方案包括哪些
  • 网站备案信息核验单填写中国十大企业培训机构排名
  • 龙岩市天宫山风景区沈阳seo按天计费
  • 外包加工网上可靠吗网站优化培训
  • 0基础12天精通网站建设关键词歌词简谱
  • 亚马逊品牌备案网站怎么做网络黄页推广软件哪个好用
  • 女女做网站南宁百度推广代理商
  • 自己买空间让网络公司做网站好吗临沂网站建设方案服务
  • php怎么做网站后台外链群发平台
  • 寿光专业做网站的公司有哪些营销推广公司案例
  • 做网站淄博人民网 疫情
  • 百度上找不到网站重庆seo技术教程博客
  • 免费个人网站2018什么平台可以免费打广告
  • 建个公司网站多少钱网站搭建平台
  • 做彩平图的素材那个网站有培训学校管理系统
  • 泉州网站建设公司推荐阿里巴巴国际站运营
  • 原阳县建站塔山双喜专业网络推广公司排名
  • 京东网站建设目标是什么下载优化大师app
  • 临沂做网站找哪家好seo外包网站
  • 做时时彩网站都要什么百度信息流广告怎么投放
  • 那些提卡网站是怎么做的如何进行电子商务网站推广
  • 长春火车站是南站还是北站站长之家网站介绍