Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
38550 杨耀然 【J】T3 C++ 通过 100 7 MS 17960 KB 2483 2025-10-15 19:46:07

Tests(10/10):


#include<bits/stdc++.h> using namespace std; char a[55][55]; int n,m,k,sx,sy,dp[1005][55][55]; string dr[1005]; int main() { cin>>n>>m; for(int i=1;i<=n;i++) { for(int j=1;j<=m;j++) { cin>>a[i][j]; if(a[i][j]=='*') { sx=i; sy=j; a[i][j]='.'; } } } cin>>k; for(int i=1;i<=k;i++) { cin>>dr[i]; } dp[0][sx][sy]=1; for(int d=1;d<=k;d++) { if(dr[d]=="NORTH") { for(int i=n;i>=1;i--) { for(int j=1;j<=m;j++) { if(a[i][j]=='X') { continue; } dp[d][i][j]=max(dp[d][i+1][j],dp[d-1][i+1][j]); } } } if(dr[d]=="SOUTH") { for(int i=1;i<=n;i++) { for(int j=1;j<=m;j++) { if(a[i][j]=='X') { continue; } dp[d][i][j]=max(dp[d][i-1][j],dp[d-1][i-1][j]); } } } if(dr[d]=="EAST") { for(int i=1;i<=n;i++) { for(int j=1;j<=m;j++) { if(a[i][j]=='X') { continue; } dp[d][i][j]=max(dp[d][i][j-1],dp[d-1][i][j-1]); } } } if(dr[d]=="WEST") { for(int i=1;i<=n;i++) { for(int j=m;j>=1;j--) { if(a[i][j]=='X') { continue; } dp[d][i][j]=max(dp[d][i][j+1],dp[d-1][i][j+1]); } } } } for(int i=1;i<=n;i++) { for(int j=1;j<=m;j++) { if(dp[k][i][j]==1) { a[i][j]='*'; } } } for(int i=1;i<=n;i++) { for(int j=1;j<=m;j++) { cout<<a[i][j]; } cout<<'\n'; } return 0; } /* 5 5 ..... .XX.X ..... X..*. ..X.X 4 NORTH WEST SOUTH WEST */


测评信息: