Codeforces_739_B
http://codeforces.com/problemset/problem/739/B
dfs,记录距离前缀和,每次找到离最近的不符合的点。
- #include<iostream>
- #include<cstring>
- #include<cstdio>
- #include<algorithm>
- #include<vector>
- using namespace std;
- int n,cnt = ,a[],b[],sta[],ans[] = {};
- long long dis[];
- vector<int> v[];
- void dfs(int x,long long deep)
- {
- sta[++cnt] = x;
- dis[x] = deep;
- for(int i = ;i < v[x].size();i++)
- {
- int t = v[x][i];
- dfs(t,dis[x]+b[t]);
- ans[x] += ans[t]+;
- }
- int l = ,r = cnt-;
- while(l < r)
- {
- int mid = (l+r+)/;
- if(dis[x]-dis[sta[mid]] > a[x]) l = mid;
- else r = mid-;
- }
- ans[sta[l]]--;
- cnt--;
- }
- int main()
- {
- scanf("%d",&n);
- for(int i = ;i <= n;i++) scanf("%d",&a[i]);
- for(int i = ;i <= n;i++)
- {
- int x,y;
- scanf("%d%d",&x,&y);
- v[x].push_back(i);
- b[i] = y;
- }
- dfs(,);
- for(int i = ;i <= n;i++) printf("%d ",ans[i]);
- printf("\n");
- return ;
- }
Codeforces_739_B的更多相关文章
随机推荐
- 1051 复数乘法 (15 分)C语言
复数可以写成 (A+Bi) 的常规形式,其中 A 是实部,B 是虚部,i 是虚数单位,满足 i^2=−1:也可以写成极坐标下的指数形式 (R×e(Pi) ),其中 R 是复数模,P 是辐角,i ...
- 微信小程序开发笔记(一)
一.为什么要学习微信小程序开发 微信小程序是一个可以在微信上打开的轻应用,他是由多个页面组成的程序,跟传统APP比较如下: 优点 1.不需要在应用商店下载,不占用内存空间,即开即用 2.可以在微信内直 ...
- Yolo V3整体思路流程详解!
结合开源项目tensorflow-yolov3(https://link.zhihu.com/?target=https%3A//github.com/YunYang1994/tensorflow-y ...
- 小白学 Python 爬虫(42):春节去哪里玩(系列终篇)
人生苦短,我用 Python 前文传送门: 小白学 Python 爬虫(1):开篇 小白学 Python 爬虫(2):前置准备(一)基本类库的安装 小白学 Python 爬虫(3):前置准备(二)Li ...
- springboot集成restdocs输出接口文档
1.pom文件新增restdocs <dependency> <groupId>org.springframework.restdocs</groupId> ...
- 关于neo4j初入门(1)
图形数据库也称为图形数据库管理系统或GDBMS. Neo4j的官方网站:http://www.neo4j.org Neo4j的优点 它很容易表示连接的数据 检索/遍历/导航更多的连接数据是非常容易和快 ...
- 关于爬虫的日常复习(13)—— 爬虫requests的初级高级的基本用法
- 内置3D对象-Unity3D游戏开发培训
内置3D对象-Unity3D游戏开发培训 作者:Jesai 2018-02-12 19:21:58 五大面板: -Hierachy:当前场景中的物体 图 1-1 -Project:项目中的所有资源 图 ...
- 【WPF on .NET Core 3.0】 Stylet演示项目 - 简易图书管理系统(4) - 图书列表界面
在前三章中我们完成了登录窗口, 并掌握了使用Conductor来切换窗口, 但这些其实都是在为我们的系统打基础. 而本章中我们就要开始开发系统的核心功能, 即图书管理功能了. 通过本章, 我们会接触到 ...
- [bzoj1045] [洛谷P2512] [HAOI2008] 糖果传递
Description 有n个小朋友坐成一圈,每人有ai个糖果.每人只能给左右两人传递糖果.每人每次传递一个糖果代价为1. Input 第一行一个正整数nn<=1'000'000,表示小朋友的个 ...