B题:Default Price
标签:
S
T
L
、
m
a
p
STL、map
STL、map、模拟
题意:给定
n
n
n个有颜色的盘子和
m
m
m种颜色分别对应的价值
p
i
p_i
pi,
p
0
p_0
p0表示盘子颜色如果不属于这
m
m
m种颜色,那对应的价值,求这
n
n
n个盘子最后的价值和为多少。
题解:可以先用
m
a
p
map
map去映射一下不同颜色对应的价值,然后去遍历这
n
n
n个盘子,如果映射发现对应的是
0
0
0价值,说明不属于这
m
m
m种颜色,那我们用
p
0
p_0
p0去代替一下,最后累加下就好了。
代码:
#include <bits/stdc++.h>
using namespace std;
map<string, int > a;
string s[105], s2[105];
int main() {
int n, m;
cin >> n >> m;
for (int i = 1; i <= n; i++) {
cin >> s[i];
}
for (int i = 1; i <= m; i++) {
cin >> s2[i];
}
int p, v;
cin >> p;
for (int i = 1; i <= m; i++) {
cin >> v;
a[s2[i]] = v;
}
int ans = 0;
for (int i = 1; i <= n; i++) {
if (!a[s[i]]) {
ans += p;
} else {
ans += a[s[i]];
}
}
cout << ans << endl;
return 0;
}