#P10164. [DTCPC 2024] 戈布

    ID: 9556 Type: RemoteJudge 1000ms 32MiB Tried: 0 Accepted: 0 Difficulty: 6 Uploaded By: Tags>动态规划,dp2024前缀和洛谷月赛

[DTCPC 2024] 戈布

题目描述

对于 0101 序列 {an}\{a_n\},找到最小的 kk 满足存在一组 {(lk,rk)}\{(l_k,r_k)\}使得以下条件成立。

  • i[1,n]\forall i\in[1,n]ai=1a_i=1 当且仅当 j[1,k]\exist j\in[1,k]i[lj,rj]i\in[l_j,r_j]

可以证明满足条件的 {(lk,rk)}\{(l_k,r_k)\} 仅有一个。

一个 0101 序列 {an}\{a_n\} 是好的当且仅当 i[1,k)\forall i\in[1,k)rili<ri+1li+1r_i-l_i<r_{i+1}-l_{i+1}

简单来说,一个 0101 序列是好的当且仅当从左到右形成的极长 11 段长度严格递增。

给定序列 {an}\{a_n\},你可以进行如下操作若干次(或不进行操作):

  • 选择 i,ji,j(ij)(i\ne j),交换 ai,aja_i,a_j

试求最小的操作次数使得 {an}\{a_n\} 变成一个好的序列。

输入格式

一行一个长为 nnn800n\leq 800) 的 0101 序列 {an}\{a_n\}

输出格式

一行一个数字,表示答案。

01101
1
01011
0