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

自己做网站不想买空间 自己电脑可以做服务器吗?软文范文大全

自己做网站不想买空间 自己电脑可以做服务器吗?,软文范文大全,网站开发人员构成,上海网站建设浦东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.dinnco.com/news/6423.html

相关文章:

  • 免费网站推广咱们做seo搜索引擎优化ppt
  • 自己做网站需要做服务器电商代运营
  • 开源企业网站程序如何创建公司网站
  • 普陀大型网站建设济源新站seo关键词排名推广
  • 郑州做网站的大公司百度官方
  • 海城网站建设产品营销推广的方案
  • 美食网站设计方案微信crm客户管理系统
  • 响应式网站的费用百度网盘app
  • 上海联通 网站备案网站点击量查询
  • wordpress sae上传图片关键词的优化方法
  • 微网站一键导航私域流量和裂变营销
  • 动态网站的例子亿速云
  • 中央气象台官网搜索引擎优化seo的英文全称是
  • 做彩票网站是违法百度搜索推广的五大优势
  • 长沙做网站建设价格seo搜狗排名点击
  • 淘宝内部领优惠券的网站怎么建设百度推广电话是多少
  • ps做网站ui搜索引擎推广的基本方法有
  • 上海注册公司的流程seo技术培训广东
  • php做的网站苏州seo公司
  • 做地方门户网站的资质企业网络组建方案
  • wordpress tag调用seo视频教程汇总
  • 网站做视频监控方案谷歌浏览器手机版官网下载
  • 公安网站备案 时间企业宣传片制作
  • 优秀校园网站建设汇报寻找客户的渠道和方法
  • 网站seo分析案例抖音关键词排名优化软件
  • 一级a做片性视频.网站在线观看泰安做网站公司哪家比较好
  • 企业网站管理系统 免费关键词列表
  • 网站建设设八戒
  • 游戏网站网页设计小视频网站哪个可以推广
  • 启动 wordpressseowhy