답안 #241891

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
241891 2020-06-26T09:08:58 Z NONAME Vještica (COCI16_vjestica) C++14
컴파일 오류
0 ms 0 KB
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using ld = long double;

const int oo = (1 << 30);

int n, dp[(1 << 16)], cnt[20][26];

int calc(int msk) {
    int c[26];

    fill(c, c + 26, inf);

    for (int i = 0; i < n; ++i)
        if ((1 << i) & msk) {
            for (int j = 0; j < 26; ++j)
                c[j] = min(c[j], cnt[i][j]);
        }

    int len = 0;

    for (int i = 0; i < 26; ++i)
        len += c[i];

    return len;
}

int solve(int msk) {
    int &res = dp[msk];
    if (res != -1)
        return res;

    res = oo;

    int pr = calc(msk);

    if (__builtin_popcount(msk) == 1)
        return res = pr;

    for (int i = (msk - 1) & msk; i > 0; i = (i - 1) & msk) {
        int cur = solve(i) + solve(msk ^ i) - pr;
        res = min(res, cur);
    }

    return res;
}

int main() {
    ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);

    #ifdef _LOCAL
        freopen("in", "r", stdin);
        freopen("out", "w", stdout);
    #endif // _LOCAL

    memset(dp, -1, sizeof(dp));
    cin >> n;
    for (int i = 0; i < n; ++i) {
        string s;
        cin >> s;

        int m = int(s.size());

        for (int j = 0; j < m; ++j)
            ++cnt[i][s[j] - 'a'];
    }

    cout << solve((1 << n) - 1) + 1;
}

Compilation message

vjestica.cpp: In function 'int calc(int)':
vjestica.cpp:13:21: error: 'inf' was not declared in this scope
     fill(c, c + 26, inf);
                     ^~~
vjestica.cpp:13:21: note: suggested alternative: 'ynf'
     fill(c, c + 26, inf);
                     ^~~
                     ynf