BOJ9375


BOJ9375. ファッション王申海彬


質問する



コード#コード#

#include <bits/stdc++.h>

using namespace std;

int main(int argc, char const *argv[])
{
    int tcase, num;
    string clothes, cate;

    cin >> tcase;

    while (tcase--)
    {
        map<string, int> m;

        cin >> num;

        while (num--)
        {

            cin >> clothes >> cate;

            if (m.find(cate) == m.end())
            {
                m.insert(pair<string, int>(cate, 1));
            }
            else
            {
                m[cate]++;
            }
        }
        int ans = 1;
        for (auto i : m)
        {
            ans *= (i.second + 1);
        }
        ans -= 1;
        cout << ans << '\n';
    }
    return 0;
}

に答える


(headgear種類数+1)*(眼鏡種類数+1)-1+ 1この服を着ていない- 1も着なければ
同時に発生した場合を掛ける.(乗算法則)

Mapリソース構造

  • キーは、値対オブジェクトの形で
  • を構成する.
  • m.insertはペアで挿入する必要があります.m.insert(pair<string,int>(cate,1));
  • map.findについて(検索する)


    「検索する」が見つかった場合は対応する値を返し、見つからない場合はm.end()(ここでは0)を返します.

    for(auto変数:配列)(c++11以降)


    範囲ベースのFor文
    安定性のためにアップグレードされた配列だそうです.
    配列の値が変数に割り当てられる方法は、配列の範囲と一致します.autoは、コンピュータがアレイに基づいてデータ型を自動的に判断するキーワードである
    int fibonacci[]= {0,1,1,2,3,5,8,13,21}
    for(int number : fibonacci){
    cout<<number<<' ';
    
    // auto로 하면 컴퓨터가 알아서 자료형을 판단함
    for(auto number : fibonacci){
    cout<<number<<' ';