news 2026/4/16 9:11:33

ABC round 438 E st倍增

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
ABC round 438 E st倍增

Problem Statement

There are N people and N buckets. Both the people and buckets are numbered 1,2,…,N.

Initially, person i holds only bucket i, and bucket i is empty.

From now on, the following operation will be performed 109 times:

  • For i=1,2,…,Nsimultaneously, person i adds i units of water to each of the buckets they are holding and passes those buckets to person Ai​.

Here, there is no limit on the amount of water that can be put in a bucket.

For i=1,2,…,Q, answer the following queries:

  • Find the amount of water in bucket Bi​ immediately after the Ti​-th operation.

问题陈述

  • 有 N 人和 N 桶。人和水桶的编号都是 1,2,…,N 。

    最初,人 i 只持有水桶 i ,而水桶 i 是空的。

    从现在起,将执行以下操作 109 次:

  • 对于 i=1,2,…,N同时*, i 将 i 个单位的水添加到他们手中的每个水桶中,并将这些水桶递给 Ai​ 。
  • 在这里,水桶中的水量没有限制。

    对于 i=1,2,…,Q ,请回答下列问题:

  • 求 Ti​ /-操作后,水桶 Bi​ 中的水量。

Input

The input is given from Standard Input in the following format:

N Q A1​ A2​ … AN​ T1​ B1​ T2​ B2​ ⋮ TQ​ BQ​

Output

Output Q lines. The i-th line should contain the answer to the i-th query.

我们设st[i][j]表示i 拿到水桶后 经过1<<j时间 水桶传递给谁 sum[i][j] 表示从i拿到某个水桶后 1<<j这个时间后 水桶的增加量 然后进行查询即可

#include <bits/stdc++.h> using namespace std; typedef long long ll; const int N=2e5+5; ll sum[N][30],st[N][30]; int n,q; int main() { ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin>>n>>q; for(int i=1;i<=n;i++){ cin>>st[i][0]; sum[i][0]=i; } for(int i=1;i<30;i++){ for(int j=1;j<=n;j++){ st[j][i]=st[st[j][i-1]][i-1]; sum[j][i]=sum[st[j][i-1]][i-1]+sum[j][i-1]; } } while(q--){ ll res=0; ll t,b; cin>>t>>b; for(int i=0;i<30;i++){ if(t&(1LL<<i)){ res+=sum[b][i]; b=st[b][i]; } } cout<<res<<'\n'; } return 0; }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/2 2:33:46

2025年度全景复盘:技术成长、创作突破与生活的三重奏

在代码与文字的交织中&#xff0c;我找到了属于自己的节奏——这一年&#xff0c;我不只是写代码的程序员&#xff0c;更是用技术思考生活的创作者。 文章目录一、开篇&#xff1a;为什么需要这样一次深度复盘&#xff1f;二、技术成长与突破&#xff1a;从“会用”到“懂为什么…

作者头像 李华
网站建设 2026/4/9 8:23:26

日常工作中是否应该以administrator账户进行登录?

强烈不建议在日常工作中使用 Administrator 账户登录。 尽管它拥有最高权限&#xff0c;非常方便&#xff0c;但这样做会将自己和公司的电脑置于巨大的安全风险之下。这可以被视为网络安全的一个大忌。 以下是详细的原因和建议&#xff1a; 为什么日常使用 Administrator 账…

作者头像 李华
网站建设 2026/4/11 7:24:07

电力系统随机潮流概率潮流计算:以IEEE34节点为例

电力系统随机潮流概率潮流计算MATLAB程序包含蒙特卡洛模拟法、半不变量法&#xff0b;级数展开&#xff08;Gram-Charlie&#xff0c;Cornish-Fisher&#xff09;&#xff1b; 考虑光伏不确定性&#xff08;Beta分布&#xff09;&#xff0c;以IEEE34节点为例&#xff0c;计算节…

作者头像 李华
网站建设 2026/4/14 21:55:12

YOLO实时检测延迟分析:影响GPU利用率的五大因素

YOLO实时检测延迟分析&#xff1a;影响GPU利用率的五大因素 在智能制造、自动驾驶和智能安防等工业视觉系统中&#xff0c;毫秒级的目标检测响应已不再是“加分项”&#xff0c;而是系统能否上线的硬性门槛。YOLO系列自诞生以来&#xff0c;凭借其单次前向传播完成检测的设计理…

作者头像 李华
网站建设 2026/4/12 20:03:10

YOLO开源生态有多强?GitHub星标超50K的背后故事

YOLO开源生态有多强&#xff1f;GitHub星标超50K的背后故事 在智能制造工厂的质检线上&#xff0c;一台工业相机正以每秒30帧的速度拍摄流水线上的电子元件。下一秒&#xff0c;一个轻量级AI模型便完成了对成百上千个焊点的缺陷识别——裂纹、虚焊、错位无一遗漏&#xff0c;并…

作者头像 李华