题意:给出n个长度不超过10的字符串,m次询问,每次询问给出一个字符串和一个操作次数上限,询问有多少个字符串可以经过不超过上限次操作变成给定的字符串。
思路:动态规划,类似lcs,dp[i][j]表示前一个字符串的前I个字符和后一个字符串的前j个字符所需要的操作次数,
转移方程为
dp[i][j] = min(dp[i-1][j]+1, dp[i][j-1]+1);
if (a[i] == b[j])
dp[i][j] = min(dp[i][j], dp[i-1][j-1]);
else
dp[i][j] = min(dp[i][j], dp[i-1][j-1]+1);
</pre><pre class="cpp" name="code" snippet_file_name="blog_20160319_7_9617236" code_snippet_id="1616394">
#include<bits/stdc++.h>
#d