目录
一.题目
二.题解
这道题有点懵呀。容斥原理根本想不到,那么就来想一下DP。
我们定义一个二维DP数组dp[i][j],表示宽度为i,共有j个条形的总情况数。
可以想到有两种情况:
1.这一位二维码与上一位二维码同色,连成一体:dp[i-1][j]
2.这一位二维码与上一位二维码异色,独成一条:dp[i-1][j-1]
但是还有一种特殊情况,就是如果与上一位同色,那么就是如果这一条二维码的长度超过了m,就要减去这种情况:dp[i-1-m][j]
所以状态转移方程就是:
我们求到了总方案数,现在来求要求的那一个方案。
我们先预处理出输入的条形码存入数组,然后循环