luogu月赛的题 本来想爆搜,但是经过ly大佬的点拨,明白这是一个dp. 我们定义dp[n]为从n开始的可行串的数目,具体如下:如果n为'I',则是从n开始有多少个I,如果n为'O',既是从n开始有多少个'OI',如果n为'N',则是从n开始有多少个'NOI' 我们已经定义了状态,那么怎么转移呢?我们以n是'N'为例,'NOI'的数目可以分为两部分:1)包括n, 2)不包括n.所以,我们可以这样计算dp[n],找到从n开始的第一个N和O,把两个字符的dp值相加,就得到了答案. 我们从后往前推,…