【20181031T2】几串字符【数位DP思想+组合数】

题面

【错解】

一眼数位DP

\(f(i,c00,c01,c10,c11)\)……

神tm DP

哎好像每两位就一定对应c中的一个,那不用记完

所以可以设\(f(i,c00,c01,c10)\)……

神tm DP

也发现用c可以算出0和1有多少个、多少段,可以组合数,但感觉细节太多,没有细想(主要是想肝T3)

【正解】

如上所述,不难看出C00+C10=(0的个数),C10=(0的段数),C01+C11+1=(1的个数),C01+1=(1的段数)

然后类似数位DP的过程跑一遍,顺便记一下0、1的个数、段数

每次如果下一位是1,那么强制使他=0,然后后面随便填,相当于球盒问题

细节地方写了注释

代码

posted @ 2018-11-01 17:02  lst_mengbier  阅读(182)  评论(0编辑  收藏  举报