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

手机下载软件游戏优化大师官网

手机下载软件,游戏优化大师官网,注册新公司需要准备的材料,吴桥做网站URL:https://atcoder.jp/contests/abc309 目录 E Problem/题意 Thought/思路 解法一: 解法二: Code/代码 E Problem/题意 一个家庭有 N 个人,根节点为 1,给出 2 ~ N 的父节点。一共购买 M 次保险,每…

URL:https://atcoder.jp/contests/abc309

目录

E

Problem/题意

Thought/思路

解法一:

解法二:

 Code/代码


E

Problem/题意

一个家庭有 N 个人,根节点为 1,给出 2 ~ N 的父节点。一共购买 M 次保险,每次给出 Xi Yi,使得 Xi 和它之后的 Yi 代人都有保险。问一共有多少人获得保险?

Thought/思路

解法一:

用 next[i] 表示从 i 出发,还能覆盖多少代保险。假设 x 是 i 的下一个节点,那么 next[x] = Max(next[x], next[i] - 1)。通解只需要将 i 改为 fa[x] 即可。

只要当前节点的 next >= 0,就能让 ans ++。

解法二:

来自:~Lanly~

该解法的核心思想就是,当前处理的点,有且仅有一条回到根节点的路线,也因此可以将其当作一维前缀和来处理。

Code/代码

解法一:

#include "bits/stdc++.h"int n, m, fa[300005], next[300005], ans;std::vector <int> g[300005];void dfs(int fa, int x) {next[x] = std::max(next[x], next[fa] - 1);if (next[x] >= 0) ans ++;for (auto &o : g[x]) {dfs(x, o);}
}signed main() {std::cin >> n >> m;for (int i = 2; i <= n; ++ i) {std::cin >> fa[i];g[fa[i]].push_back(i);}std::memset(next, -1, sizeof next);for (int i = 1; i <= m; ++ i) {int x, y; std::cin >> x >> y;next[x] = std::max(next[x], y);}dfs(0, 1);std::cout << ans;
}

解法二:

#include "bits/stdc++.h"int n, m, ans, sum; // sum 是dfs每条链时的前缀和
int pre[300005], next[300005], vis[300005];
std::vector <int> g[300005];void dfs(int x, int depth) { // depth 是从 x 的层数开始算的层vis[x] = 1;if (next[x] > 0) { sum += 1; // 遇到一个能覆盖的点,该链上的和加 1pre[std::min(n + 1, depth + next[x] + 1)] -= 1; // 接下来的某层覆盖不到,差分数组减 1}sum += pre[depth]; // 前缀和 = 本身的值 + 当前的差分数组if (sum > 0) ans ++;for (auto &v : g[x]) {dfs(v, depth + 1);}sum -= pre[depth]; // 回溯if (next[x] > 0) {sum -= 1;pre[std::min(n + 1, depth + next[x] + 1)] += 1;}}signed main() {std::cin >> n >> m;for (int i = 2; i <= n; ++ i) {int x; std::cin >> x;g[x].push_back(i);}for (int i = 1; i <= m; ++ i) {int x, y; std::cin >> x >> y;next[x] = std::max(next[x], y);}for (int i = 1; i <= n; ++ i) {if (!vis[i]) dfs(i, 0);}std::cout << ans;
}

http://www.mmbaike.com/news/97458.html

相关文章:

  • 合理规划网站结构宁德市人口
  • 套模板网站seo公司推荐推广平台
  • 餐饮品牌网站建设福州seo经理招聘
  • 做外贸网站怎么访问外国网站如何做好百度推广
  • 自适应网站的缺点seo的含义
  • 做网站排名收益百度关键词搜索查询
  • 东莞网站设计服务网站注册步骤
  • 公司企业安全文化内容范本站长工具seo综合查询是什么
  • 怎么做磁力网站北京网站定制公司
  • 哪个手游平台折扣最低又安全百度网站排名优化
  • 孝感网站制作南宁企业官网seo
  • 网站淘客怎么做百度广告投放代理商
  • 兰州网站seo外包google搜索下载
  • 怎么注册做鸭网站网页优化包括
  • 织梦制作手机网站抖音关键词用户搜索排名靠前
  • 做暧暖免费观看网站公司软文怎么写
  • 市场推广seo职位描述免费seo网站自动推广
  • wordpress 文章列表顺序广州百度seo
  • 腾讯做网站怎么做推广网站
  • 苏州手机网站seoseo网站营销推广
  • 网站做电话线用江苏网站seo设计
  • 论企业网站职能建设品牌营销策划ppt
  • 为企业做网站赚钱吗有创意的营销案例
  • 阿里云网站建设教程宁波seo教学
  • 手机微网站怎么做网络营销策划论文
  • 技术支持 英铭网站建设百度收录接口
  • 日本有一个做青蛙模型的网站百度今日小说排行榜
  • 爱ppt网站淘宝关键词优化怎么弄
  • 石家庄p2p网站开发越秀seo搜索引擎优化
  • 网站怎么加载图片做logo网络项目推广平台