Submission #1708182


Source Code Expand

#include <iostream>
#include <iomanip>
#include <stdio.h>
#include <set>
#include <vector>
#include <map>
#include <cmath>
#include <algorithm>
#include <memory.h>
#include <string>
#include <sstream>
#include <cstdlib>
#include <ctime>
#include <cassert>

using namespace std;

typedef long long LL;
typedef pair<int,int> PII;

#define MP make_pair
#define PB push_back
#define FF first
#define SS second

#define FORN(i, n) for (int i = 0; i <  (int)(n); i++)
#define FOR1(i, n) for (int i = 1; i <= (int)(n); i++)
#define FORD(i, n) for (int i = (int)(n) - 1; i >= 0; i--)

#define DEBUG(X) { cout << #X << " = " << (X) << endl; }
#define PR0(A,n) { cout << #A << " = "; FORN(_,n) cout << A[_] << ' '; cout << endl; }

#define MOD 1000000007
#define INF 2000000000

int GLL(LL& x) {
    return scanf("%lld", &x);
}

int GI(int& x) {
    return scanf("%d", &x);
}

int n;

string s;

const int MAXN = 200005;
int a[MAXN], m[MAXN];

int dp[(1 << 26) + 5];

int mask(int x) {
    return 1 << x;
}

bool contains(int s, int x) {
    return s & mask(x);
}

int main() {
    cin >> s;

    n = s.size();

    FORN(i, n) {
        a[i + 1] = s[i] - 'a';
    }

    m[0] = 0;

    FOR1(i, n) {
        m[i] = m[i-1] ^ mask(a[i]);
    }

    fill(dp, dp + (1 << 26) + 5, INF);

    dp[m[n]] = 0;

    FORD(i, n) {
        int best = INF;

        FORN(j, 26) {
            best = min(best, 1 + dp[m[i] ^ mask(j)]);
        }

        dp[m[i]] = min(dp[m[i]], best);

//        DEBUG(m[i]);
//        DEBUG(dp[m[i]]);
    }

    cout << max(1, dp[0]) << "\n";

    return 0;
}

Submission Info

Submission Time
Task D - Yet Another Palindrome Partitioning
User chenmark
Language C++14 (GCC 5.4.1)
Score 700
Code Size 1664 Byte
Status AC
Exec Time 147 ms
Memory 264324 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 700 / 700
Status
AC × 4
AC × 82
Set Name Test Cases
Sample 0_00.txt, 0_01.txt, 0_02.txt, 0_03.txt
All 0_00.txt, 0_01.txt, 0_02.txt, 0_03.txt, 1_00.txt, 1_01.txt, 1_02.txt, 1_03.txt, 1_04.txt, 1_05.txt, 1_06.txt, 1_07.txt, 1_08.txt, 1_09.txt, 1_10.txt, 1_11.txt, 1_12.txt, 1_13.txt, 1_14.txt, 1_15.txt, 1_16.txt, 1_17.txt, 1_18.txt, 1_19.txt, 1_20.txt, 1_21.txt, 1_22.txt, 1_23.txt, 1_24.txt, 1_25.txt, 1_26.txt, 1_27.txt, 1_28.txt, 1_29.txt, 1_30.txt, 1_31.txt, 1_32.txt, 1_33.txt, 1_34.txt, 1_35.txt, 1_36.txt, 1_37.txt, 1_38.txt, 1_39.txt, 1_40.txt, 1_41.txt, 1_42.txt, 1_43.txt, 1_44.txt, 1_45.txt, 1_46.txt, 1_47.txt, 1_48.txt, 1_49.txt, 1_50.txt, 1_51.txt, 1_52.txt, 1_53.txt, 1_54.txt, 1_55.txt, 1_56.txt, 1_57.txt, 1_58.txt, 1_59.txt, 1_60.txt, 1_61.txt, 1_62.txt, 1_63.txt, 1_64.txt, 1_65.txt, 1_66.txt, 1_67.txt, 1_68.txt, 1_69.txt, 1_70.txt, 1_71.txt, 1_72.txt, 1_73.txt, 1_74.txt, 1_75.txt, 1_76.txt, 1_77.txt
Case Name Status Exec Time Memory
0_00.txt AC 79 ms 262400 KiB
0_01.txt AC 79 ms 262400 KiB
0_02.txt AC 79 ms 262400 KiB
0_03.txt AC 79 ms 262400 KiB
1_00.txt AC 79 ms 262400 KiB
1_01.txt AC 79 ms 262400 KiB
1_02.txt AC 79 ms 262400 KiB
1_03.txt AC 79 ms 262400 KiB
1_04.txt AC 79 ms 262400 KiB
1_05.txt AC 79 ms 262400 KiB
1_06.txt AC 79 ms 262400 KiB
1_07.txt AC 79 ms 262400 KiB
1_08.txt AC 119 ms 264324 KiB
1_09.txt AC 95 ms 264324 KiB
1_10.txt AC 103 ms 264324 KiB
1_11.txt AC 99 ms 264324 KiB
1_12.txt AC 94 ms 264196 KiB
1_13.txt AC 95 ms 264324 KiB
1_14.txt AC 96 ms 264324 KiB
1_15.txt AC 97 ms 264324 KiB
1_16.txt AC 98 ms 264324 KiB
1_17.txt AC 98 ms 264324 KiB
1_18.txt AC 98 ms 264196 KiB
1_19.txt AC 98 ms 264324 KiB
1_20.txt AC 97 ms 264196 KiB
1_21.txt AC 97 ms 264324 KiB
1_22.txt AC 115 ms 264324 KiB
1_23.txt AC 109 ms 264324 KiB
1_24.txt AC 115 ms 264196 KiB
1_25.txt AC 128 ms 264324 KiB
1_26.txt AC 110 ms 264196 KiB
1_27.txt AC 134 ms 264324 KiB
1_28.txt AC 118 ms 264324 KiB
1_29.txt AC 113 ms 264324 KiB
1_30.txt AC 131 ms 264196 KiB
1_31.txt AC 128 ms 264196 KiB
1_32.txt AC 138 ms 264324 KiB
1_33.txt AC 133 ms 264324 KiB
1_34.txt AC 142 ms 264196 KiB
1_35.txt AC 147 ms 264196 KiB
1_36.txt AC 146 ms 264196 KiB
1_37.txt AC 145 ms 264196 KiB
1_38.txt AC 108 ms 264324 KiB
1_39.txt AC 109 ms 264324 KiB
1_40.txt AC 108 ms 264324 KiB
1_41.txt AC 109 ms 264324 KiB
1_42.txt AC 106 ms 264324 KiB
1_43.txt AC 106 ms 264324 KiB
1_44.txt AC 105 ms 264324 KiB
1_45.txt AC 106 ms 264324 KiB
1_46.txt AC 104 ms 264324 KiB
1_47.txt AC 104 ms 264324 KiB
1_48.txt AC 104 ms 264324 KiB
1_49.txt AC 104 ms 264324 KiB
1_50.txt AC 102 ms 264324 KiB
1_51.txt AC 102 ms 264324 KiB
1_52.txt AC 101 ms 264324 KiB
1_53.txt AC 102 ms 264324 KiB
1_54.txt AC 100 ms 264324 KiB
1_55.txt AC 102 ms 264324 KiB
1_56.txt AC 100 ms 264324 KiB
1_57.txt AC 101 ms 264324 KiB
1_58.txt AC 99 ms 264324 KiB
1_59.txt AC 101 ms 264324 KiB
1_60.txt AC 99 ms 264324 KiB
1_61.txt AC 100 ms 264324 KiB
1_62.txt AC 100 ms 264324 KiB
1_63.txt AC 100 ms 264324 KiB
1_64.txt AC 99 ms 264324 KiB
1_65.txt AC 100 ms 264324 KiB
1_66.txt AC 99 ms 264324 KiB
1_67.txt AC 99 ms 264324 KiB
1_68.txt AC 99 ms 264324 KiB
1_69.txt AC 99 ms 264324 KiB
1_70.txt AC 99 ms 264324 KiB
1_71.txt AC 99 ms 264324 KiB
1_72.txt AC 98 ms 264324 KiB
1_73.txt AC 100 ms 264324 KiB
1_74.txt AC 98 ms 264324 KiB
1_75.txt AC 98 ms 264324 KiB
1_76.txt AC 98 ms 264324 KiB
1_77.txt AC 99 ms 264324 KiB