替换 有一个包含 N 个正整数 A1、A2、……、AN 的数列 A。接下来将进行 Q 次操作: 在第 i 次操作中,将数列中所有值为 Bi 的元素替换为 Ci。请针对每次操作(1≤i≤Q),输出操作后数列 A 的所有元素之和 Si。 时间限制:1000ms,内存限制:256MB 输入格式 第一行,一个整数 N; 第二行,N 个整数 A1、A2、……、AN; 第三行,一个整数 Q。 接下来 Q行,每行两个整数 Bi、Ci。 输出格式 输出 Q行,每行一个整数 Si,表示每次操作后的数列总和。注意:Si 可能超出32 位整数范围。 输入样例#1 4 1 2 3 4 3 1 2 2 4 3 4 输出样例#1 11 15 16 输入样例#2 5 1 2 3 4 5 5 1 2 2 3 3 4 4 5 5 1 输出样例#2 16 18 21 25 5 数据范围: 1≤N、Q、Ai、Bi、Ci≤105,Bi≠Ci。
正确答案:参考程序(Python):N=int(input());A=list(map(int,input().split()));cnt={};s=sum(A);for x in A:cnt[x]=cnt.get(x,0)+1;Q=int(input());for _ in range(Q):b,c=map(int,input().split());if b in cnt:nb=cnt.pop(b);cnt[c]=cnt.get(c,0)+nb;s+=(c-b)*nb;print(s)。样例→11 15 16。核
试卷来源:202509 青少年等级考试C/C++真题四级