atcoder CODE FESTIVAL 2017 qual C D - Yet Another Palindrome Partitioning

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了atcoder CODE FESTIVAL 2017 qual C D - Yet Another Palindrome Partitioning相关的知识,希望对你有一定的参考价值。

Problem Statement

We have a string s consisting of lowercase English letters. Snuke is partitioning s into some number of non-empty substrings. Let the subtrings obtained be s1s2sNfrom left to right. (Here, s=s1+s2+…+sN holds.) Snuke wants to satisfy the following condition:

  • For each i (1≤iN), it is possible to permute the characters in si and obtain a palindrome.

Find the minimum possible value of N when the partition satisfies the condition.

 

用二进制记下前缀的每种字母奇偶性

dp[i]表示前i个最少分几段,枚举奇数字母是什么转移

可以记下每种二进制最小的dp值是什么

 

技术分享
#include<bits/stdc++.h>  
using namespace std;
char s[200005];
int f[1<<26];
int main(){
    scanf("%s",&s);
    int n=strlen(s),td;
    for (int i=1;i<(1<<26);i++) f[i]=1000000000;
    for (int i=0,zt=0;i<n;i++){
        zt^=(1<<(s[i]-a));
        td=f[zt]+1;
        for (int j=0;j<26;j++) td=min(td,f[zt^(1<<j)]+1);
        f[zt]=min(f[zt],td);
    }
    printf("%d",td);
}
View Code

 

 

 


Time limit : 3sec / Memory limit : 512MB

Score : 700 points

Problem Statement

We have a string s consisting of lowercase English letters. Snuke is partitioning s into some number of non-empty substrings. Let the subtrings obtained be s1s2sNfrom left to right. (Here, s=s1+s2+…+sN holds.) Snuke wants to satisfy the following condition:

  • For each i (1≤iN), it is possible to permute the characters in si and obtain a palindrome.

Find the minimum possible value of N when the partition satisfies the condition.

Constraints

  • 1≤|s|≤2×105
  • s consists of lowercase English letters.

Input

Input is given from Standard Input in the following format:

s

Output

Print the minimum possible value of N when the partition satisfies the condition.


Sample Input 1

Copy
aabxyyzz

Sample Output 1

Copy
2

The solution is to partition s as aabxyyzz = aab + xyyzz. Here, aab can be permuted to form a palindrome aba, and xyyzz can be permuted to form a palindrome zyxyz.


Sample Input 2

Copy
byebye

Sample Output 2

Copy
1

byebye can be permuted to form a palindrome byeeyb.


Sample Input 3

Copy
abcdefghijklmnopqrstuvwxyz

Sample Output 3

Copy
26

Sample Input 4

Copy
abcabcxabcx

Sample Output 4

Copy
3

The solution is to partition s as abcabcxabcx = a + b + cabcxabcx.

以上是关于atcoder CODE FESTIVAL 2017 qual C D - Yet Another Palindrome Partitioning的主要内容,如果未能解决你的问题,请参考以下文章

atcoder CODE FESTIVAL 2017 qual C D - Yet Another Palindrome Partitioning

@atcoder - CODE FESTIVAL 2017 Final - J@ Tree MST

Atcoder Code Festival 2017 qual C 10.22 D题题解

[Atcoder Code Festival 2017 Qual B Problem F]Largest Smallest Cyclic Shift

[AtCoder Code Festival 2017 QualB C/At3574] 3 Steps - 二分图染色,结论

CODE FESTIVAL 2017 qual B 解题报告