zoukankan      html  css  js  c++  java
  • 增援

    【题目描述】

    国王决定在某些城市加派士兵。所有城市初始士兵数量为0。当城市i被加派了k名士兵时。城市的所有子城市需要被加派k+1名士兵。这些子城市的所有子城市需要被加派k+2名士兵。以此类推。

    在加派士兵的同时,国王随时可能会询问以城市i为根的子树中所有城市总共被加派了多少士兵。

    【输入描述】

    第一行输入两个整数N、P,分别表示城市数量以及国王命令的数量;

    第二行输入N-1个整数,分别表示2~N号节点的父亲节点;

    接下来P行,每行输入国王的一个命令,命令的格式分两种:

    (1)A X K:在城市X加入K个士兵;

    (2)Q X:询问以城市X为根的子树中所有士兵数量的和。

    【输出描述】

    对于每个Q,输出答案。

    【样例输入】

    7 10

    1 1 2 2 5 5

    Q 1

    A 2 1

    Q 1

    Q 2

    Q 5

    A 5 0

    Q 5

    A 3 1

    Q 1

    Q 2

    【样例输出】

    0

    11

    11

    8

    10

    14

    13

    【数据范围及提示】

    对于50%的数据,1 ≤ N ≤ 1000,1 ≤ P ≤ 300;

    对于100%的数据,1 ≤ N ≤ 50000,1 ≤ P ≤ 100000,1 ≤ X ≤ N,0 ≤ K ≤ 1000。

  • 相关阅读:
    【BP算法】
    【C++问题整理】
    【最大回文长度】
    【连通区域个数】
    Redis的复制(Master/Slave)、主从复制、读写分离 (下)
    Redis的复制(Master/Slave)、主从复制、读写分离
    Redis发布订阅
    Redis事务
    Redis持久化
    Redis配置文件
  • 原文地址:https://www.cnblogs.com/Ackermann/p/5930562.html
Copyright © 2011-2022 走看看