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

sqlite 网站开发网站建设时间查询

sqlite 网站开发,网站建设时间查询,网上购物系统源码,晋城做网站的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.yayakq.cn/news/94250/

相关文章:

  • win7如何做网站wordpress 随机播放器
  • 微信网站特征早教网站源码
  • 淘宝导购网站模板做网站的工具怎么使用
  • 网站设计的公司北京网站建设中图片尺寸
  • 试用型网站wordpress 弹性布局设计案例
  • 404做的好的网站php+html转+wordpress
  • 淘宝网官方网站网页版wordpress打开xml-rpc
  • 贵阳网站建设q479185700棒梅州建设工程交易中心网站
  • 网站交互做的比较好的学网站开发前景
  • 删除的网站做404浏阳商务局网站溪江农贸市场建设
  • 网站模板怎么用法谷歌推广代运营
  • 辽宁手机响应式网站建设做制作网站找啥工作
  • 网站推广和精准seo网站如何免费做SEO优化
  • 营销型企业网站的策划方案外贸seo网站推广
  • 如何申请域名建立网站济源网站维护
  • 谷歌提交网站网上做娱乐广告的网站
  • 网站建设费用计入哪个会计科目河南建设政务网
  • 网站建设 自学 电子版 pdf下载做网站 用什么空间
  • 图案设计网站有哪些顺义企业建站
  • 帮人做网站一个多少钱3天引流800个人技巧
  • 大庆+网站建设网站转化率低的原因
  • 自助下单网站网站开发的在线支付功能
  • 网站服务器买了后怎么做的免费凡科建站官网
  • 做设计想接外单去哪个网站好以你的心诠释我的爱网页设计素材
  • 做团购的家居网站有哪些网站如何做推广效果好
  • 山东网站建设运行工资wordpress大学 加载慢
  • 军事网站模板下载企业的网站建设策划书
  • 做网站 工资高吗企业网络营销策略分析
  • 求个网站这么难吗2022年贴吧杭州seo公司
  • 海外市场营销seo优化百度seo谷歌seo外贸推广网站seo优化运