# include & ltbits/stdc++。h & gt// C++通用頭文件
使用命名空間std
int dx[4] = {-1,1,0,0 };
int dy[4] = {0,0,-1,1 };
int n,m;
char mat[3000][3000];//字符矩陣
int DP[3000][3000][6];//內存搜索
string s = " IAKCSP
Int dfs(int x,int y,int i) {//從當前位置開始,可以匹配s[i:5]的個數。
如果(i == 5)
返回DP[x][y][I]= 1;//匹配到最後,返回1個可行解。
if (dp[x][y][i]!= -1)
return DP[x][y][I];
DP[x][y][I]= 0;
for(int k = 0;k & lt4;++k) {
int nx = x + dx[k],ny = y+dy[k];
if(NX & gt;= 0 & amp& ampnx & ltn & amp& ampny & gt= 0 & amp& ampny & ltm
& amp& ampmat[nx][ny] == s[i + 1])
dp[x][y][i] += dfs(nx,ny,I+1);
}
return DP[x][y][I];
}
int main() {
memset(dp,-1,sizeof(DP));//初始化為-1
CIN & gt;& gtn & gt& gtm;
for(int I = 0;我& ltn;++i) {
for(int j = 0;j & ltm;++j)
CIN & gt;& gtmat[I][j];
}
int ans = 0;
for(int I = 0;我& ltn;++i) {
for(int j = 0;j & ltm;++j)
if (mat[i][j] == s[0])
ans += dfs(i,j,0);
}
cout & lt& ltans & lt& lt”\ n”;
返回0;
}
G++編譯通過的測試用例,希望采納~