#include <iostream> #include <vector> using namespace std; int score(char s){ if(s=='l'){ return 4; }else if(s=='o'){ return 3; }else if(s=='v'){ return 2; }else if(s=='e'){ return 1; }else{ return 0; } } int main() { int n,m; cin>>n>>m; vector<vector<char>> grid(n,vector<char>(m)); for(int i=0;i<n;i++){ for(int j=0;j<m;j++){ cin>>grid[i][j]; } } vector<vector<int>> dp(n,vector<int>(m,0));//dp[i][j]表示网格i,j处的最高得分 dp[0][0]=score(grid[0][0]); for(int i=1;i<n;i++){ dp[i][0]=dp[i-1][0]+score(grid[i][0]); } for(int j=1;j<m;j++){ dp[0][j]=dp[0][j-1]+score(grid[0][j]); } for(int i=1;i<n;i++){ for(int j=1;j<m;j++){ dp[i][j]=max(dp[i-1][j],dp[i][j-1])+score(grid[i][j]); } } cout<<dp[n-1][m-1]; return 0; } // 64 位输出请用 printf("%lld")