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 s1, s2, …, sNfrom left to right. (Here, s=s1+s2+…+sN holds.) Snuke wants to satisfy the following condition:
- For each i (1≤i≤N), 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); }
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 s1, s2, …, sNfrom left to right. (Here, s=s1+s2+…+sN holds.) Snuke wants to satisfy the following condition:
- For each i (1≤i≤N), 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
aabxyyzz
Sample Output 1
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
byebye
Sample Output 2
1
byebye
can be permuted to form a palindrome byeeyb
.
Sample Input 3
abcdefghijklmnopqrstuvwxyz
Sample Output 3
26
Sample Input 4
abcabcxabcx
Sample Output 4
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 - 二分图染色,结论