B. Bear and Compressing:题目
纯纯暴力DFS,和dp有啥关系!不想写了,copy一份,写的真精简。
#include <bits/stdc++.h>
using namespace std;
int n, m;
string a[40], b[40];
int f[10][10][2];
int dfs(int pos, int pre, int flag) {
if (!pos)return flag;
if (f[pos][pre][flag] != -1)return f[pos][pre][flag];
int res = 0;
for (int i = 0; i < m; ++i) {
res += dfs(pos - 1, a[i][0] - 'a', flag && (b[i][0] - 'a' == pre));
}
f[pos][pre][flag] = res;
return res;
}
int main() {
cin >> n >> m;
for (int i = 0; i < m; ++i)cin >> a[i] >> b[i];
memset(f, -1, sizeof f);
cout << dfs(n - 1, 0, 1) << endl;
return 0;
}
明天开始1400分内容了,冲