首页 > 其他 > 详细

To_Heart—题解——ABC171 D

时间:2021-07-11 17:33:38      阅读:25      评论:0      收藏:0      [点我收藏+]

题目链接

题目大意

有一个数组\(A_1, A_2, \dots, A_N\)
执行如下\(Q\)个操作:在第\(i\)个操作中,将数组中所有的\(B_i\)替换成 \(C_i\)。输出操作后\(A\)中所有数之和(记为 \(S_i\)?)。

题解

简单模拟,通过桶模拟过程即可。

#include<bits/stdc++.h>
#define ll long long
using namespace std;

ll f[100005];
ll n,q;
ll ans=0;
ll a[100005];

int main(){
	cin>>n;
	for(int i=1;i<=n;i++){
		scanf("%lld",&a[i]);
		ans+=a[i];
		f[a[i]]++;
	}
	cin>>q;
	for(int i=1;i<=q;i++){
		ll x,y;
		scanf("%lld%lld",&x,&y);
		ans+=f[x]*(y-x);
		f[y]+=f[x];f[x]=0;
		printf("%lld\n",ans);
	}
	return 0;
}

To_Heart—题解——ABC171 D

原文:https://www.cnblogs.com/xf2056188203/p/14998848.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!