[白俊]9375ファッション王申海彬


https://www.acmicpc.net/problem/9375

方法


まず、服装名や種類に名称は不要(種類の数のみ必要)
1枚しか着ない場合もあります.
例の2つのheadgear、1つのeyegear、および1つのeyegearの積
でも裸の場合は外しますので、最後は1を外します.

プール(C+)

#include <bits/stdc++.h>
using namespace std; 
int t, n;
string a, b;
int main(){
    ios_base::sync_with_stdio(false);cin.tie(NULL); cout.tie(NULL);
    cin>>t;
    for (int i = 0; i < t; i++)
    {
        map <string, int> _map; //map 초기화
        cin>>n;
        for (int i = 0; i < n; i++)
        {
           cin>>a>>b;
           _map[b]++; 
        }
        long long result = 1;
        for(auto c : _map){
            result *= c.second+1;
        }
        result--;
        cout<<result<<"\n";
    }
    return 0;
}

Python

import collections
t = int(input())
for i in range(t):
    n = int(input())
    l = [] 
    for j in range(n):
        a, b = input().split()
        l.append(b)
    dic = collections.Counter(l)
    result = 1
    for k in dic:
        result *= dic[k]+1
    print(result-1)
collectionsのcounter関数の使用
リスト内の要素の数を求めることができます.