楼上的大佬们已经把解析说得很详细了,我利用(a==b)的返回值把状态方程优化了一下。 #include<bits/stdc++.h> using namespace std; const int mod = 1e9 + 7; int main() { int dp[55][3]; int m = 0; memset(dp, 0, sizeof(dp)); string a; cin>>a; m = (a[0] - '0') % 3; dp[0][m] = 1; for(int i = 1; i <...