题解:AT_utpc2012_01 2012年12月02日

题意简洁明了,无需赘述。

观察发现,答案合法当且仅当年与月和日出现每个数字出现的次数一样,每个字母可以用桶记录次数,为了省空间我使用了 map 进行映射。

My Code:

#include<bits/stdc++.h>
using namespace std;
map<char, int> mp, mp2;
int main(){
    string s;
    cin >> s;
    for(int i = 0; i < 4; i ++) mp[s[i]] ++;//年在前4位
    for(int i = 5; i < 7; i ++) mp2[s[i]] ++;//月
    for(int i = 8; i < 10; i ++) mp2[s[i]] ++;//日
    for(int i = 0; i < 4; i ++){//这里看不懂后面解释。
        if(mp[s[i]] != mp2[s[i]]){
            cout << "no\n";
            return 0;
        }
    }
    cout << "yes\n";//ATCoder特性,需输出换行。
    return 0;
}

代码中需要解释的那一部分其实很简单,我们要对比年月日的关系,只需要遍历年的元素即可。

posted @ 2024-08-17 11:00  zhangzirui66  阅读(7)  评论(0)    收藏  举报  来源