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
二、代码
代码就不加了,和别人题解的太雷同了。

浙公网安备 33010602011771号