首页 > 其他分享 >abc309E 统计家族中已买保险的人数

abc309E 统计家族中已买保险的人数

时间:2024-03-07 21:35:39浏览次数:25  
标签:abc309E int adj rep cin dfs 家族 ok 人数

一个有n个成员的家族构成一棵树,1为树根。有m份保险,第i份保险为x[i]以及他的y[i]代以内的所有子孙购买。问总共有多少人有保险。
数据范围:1<=n,m<=3e5

思路:dfs遍历统计即可,y值需要向下传递,-1表示未买。

#include <bits/stdc++.h>
using namespace std;
#define int long long
#define rep(i,a,b) for(int i=a; i<=b; i++)
#define per(i,a,b) for(int i=b; i>=a; i--)

const int N = 300005;
int n, m, f[N], ok[N];
vector<int> adj[N];
void dfs(int x, int p, int z) {
    f[x] = max(f[x], z);
    if (f[x] >= 0) ok[x] = 1;
    for (auto i : adj[x]) if (i != p) {
        dfs(i, x, f[x]-1);
    }
}
void solve() {
    cin >> n >> m;
    rep(i,2,n) {
        int p;
        cin >> p;
        adj[p].push_back(i);
        adj[i].push_back(p);
    }
    rep(i,1,n) f[i] = -1;
    rep(i,1,m) {
        int x, y;
        cin >> x >> y;
        f[x] = max(f[x], y);
    }
    dfs(1, 1, -1);
    int ans = 0;
    rep(i,1,n) if (ok[i]) ans++;
    cout << ans << "\n";
}

signed main() {
    cin.tie(0)->sync_with_stdio(0);
    int t = 1;
    while (t--) solve();
    return 0;
}

标签:abc309E,int,adj,rep,cin,dfs,家族,ok,人数
From: https://www.cnblogs.com/chenfy27/p/18059804

相关文章

  • 1.m个人的成绩存放在score数组中,请编写函数fun, 它的功能是:将低于平均分的人数作为函
    /1.m个人的成绩存放在score数组中,请编写函数fun,它的功能是:将低于平均分的人数作为函数值返回,将低于平均分的分数放在below所指1定的数组中。/#include<stdio.h>#include<string.h>intfun(int*buf,int*buff,intnum){inti=0,j=0,sum=0;for(i=......
  • 2.1 不会有人数据结构比我还菜吧?
    记录三道自己菜死了的与根号有关的题。其中每道题都有polylog解法。题目名称太长了,就不放了。CF1017GTheTree根号做法:考虑操作分块,然后建虚树。建出虚树之后我们就发现很好处理了。同样的,处理每一个块结束后的真实形态,也可以借助这个虚树。总的来说,需要暴力维护一下每个虚......
  • List 集合类家族介绍
    ArrayListtransientObject[]elementData;LinkedListprivatestaticclassNode<E>{Eitem;Node<E>next;Node<E>prev;Node(Node<E>prev,Eelement,Node<E>next){this.item=element;thi......
  • 视野修炼第71期 | Rspack 家族新成员 Rsdoctor
    欢迎来到第71期的【视野修炼-技术周刊】,下面是本期的精选内容简......
  • 第一周培训crypto相关补充(Base家族-八卦图与二进制-md5)
    一.Base家族及其特点(1)Base161.编码后的字符只会在(0-9,A-F共16个)中出现。2.编码后的字符为源字符的两倍,4个bit一组,而1字节8bit,所以base16不可能用等号填充。(2)Base321.编码后的字符只会由大写字母(A-Z)和数字23456732个字符组成。2.因为base325bit为一组,所以编码长......
  • [office] Excel中Frequency函数统计各分数段人数的应用
    通常在在Excel中统计不同分数段或者不同的年龄段人数的方法有利用Countif(X,Y)函数和利用函数Frequency(X,Y),Fequency函数是一个频数函数,它具有统计各区间的频数的功能,使用比较简单,而且它也有两个参数,需要用英语逗号分开,第一个参数"X"是要进行统计的数据,第二个参数"Y"是分组的依据,......
  • 区域人数统计AI智能分析网关V4客流统计AI算法介绍及应用场景
    客流量统计AI算法是一种基于人工智能技术的数据分析方法,通过机器学习、深度学习等算法,实现对客流量的实时监测和统计。该算法主要基于机器学习和计算机视觉技术,其基本流程包括图像采集、图像预处理、目标检测、目标跟踪和客流量统计等步骤,通过在监控视频中识别和跟踪人的轮廓或特......
  • 区域入侵/区域人数统计AI边缘计算智能分析网关V4如何修改IP地址?
    智能分析网关V4是TSINGSEE青犀推出的一款AI边缘计算智能硬件,硬件采用BM1684芯片,集成高性能8核ARMA53,主频高达2.3GHz,INT8峰值算力高达17.6Tops,FB32高精度算力达到2.2T,硬件内置了近40种AI算法模型,支持对接入的视频图像进行人、车、物、行为等实时检测分析,上报识别结果,并能进行语音......
  • 视频监控管理平台智能边缘分析一体机视频分析区域人数统计
    在这个数据驱动的时代,我们每天都在产生大量的数据。这些数据中蕴含着无尽的信息和价值,只要我们有足够的能力去挖掘和利用。然而,传统的数据处理方式往往无法满足我们对实时、精准、高效的需求。这时,智能边缘分析一体机应运而生,它以其独特的优势,正在改变我们的生活和工作方式。今天......
  • 数据报告分享|WEKA贝叶斯网络挖掘学校在校人数影响因素数据分类模型
    全文链接:https://tecdat.cn/?p=33159原文出处:拓端数据部落公众号本文着眼普通高等学校在校学生人数,提出了不同种类学校的在校人数可能存在的影响关系从而探究教育现状的因素,建立分类模型,探求这几个因素间的数量关系。本文试图帮助客户通过研究不同种类学校的在校人数的关系,......