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;
}