Codeforces Global Round 14 E. Phoenix and Computers

一、算法分析

给一个全0序列,每次可以将一个0变成1,若某个0的左右两边都是1,则这个0自动变成1.求有多少种操作可以使得这个序列变成全1序列。

据说是水题?n很小,两种做法。

1.DP分段做法:

参考的下面的做法

https://www.luogu.com.cn/blog/yuzhechuan/solution-cf1515e#

简单地来说就是因为若某个0的左右两边都是1,则这个0自动变成1,所以要想办法把段与段分开。这样对于每次的开机操作,都可以归入下面三种情况:

①新开一个段

②合并某两个段

③扩张某个段

2.DP加上数学的做法:

参考的下面的做法

https://www.luogu.com.cn/blog/Social-Zhao/solution-cf1515e

二、代码

代码就不加了,和别人题解的太雷同了。

posted @ 2021-05-07 16:26  _rhinoceros  阅读(55)  评论(0)    收藏  举报