2507 城市和州 map

#include <bits/stdc++.h>
#define ll long long
using namespace std;
const int N = 2e5 + 10;

// 使用map来记录每个城市前两个字母和州的组合出现的次数
map<string, int> vis;
string a, b;
int n, ans;

int main() {
    // 读取城市的数量
    cin >> n;
    for (int i = 1; i <= n; i++) {
        // 读取城市名称和州的简称
        cin >> a >> b;
        // 取城市名称的前两个字母
        a = a.substr(0, 2);
        // 如果城市名称的前两个字母和州的简称不同
        if (a != b) {
            // 累加特殊对的数量
            ans += vis[a + b];
        }
        // 记录州的简称和城市名称前两个字母的组合出现的次数
        vis[b + a]++;
    }
    // 输出特殊对的数量
    cout << ans;
    return 0;
}

 

posted @ 2024-09-30 16:33  CRt0729  阅读(25)  评论(0编辑  收藏  举报