给你一个n,m的矩阵,n,m是终点,是C,其他点是D就代表往下走,R就代表往右走,需要你任意修改几个点,保证不出这个矩阵,问你最少修改次数
既然只有往下和往右走,那其实只有可能在右边界和下边界出去,所以枚举右边界的点,假如是R就改成D,枚举下边界的点,假如是D就改成R
string s1[105];
int n,m,T;
int main()
{
cin>>T;
while(T--)
{
int ans=0;
cin>>n>>m;
rep(i,0,n)
{
// rep(i,0,m)
cin>>s1[i];
}
rep(i,0,m)
{
if(s1[n-1][i]=='D')
s1[n-1][i]='R',ans++;
}
rep(i,0,n)
{
if(s1[i][m-1]=='R')
s1[i][m-1]='D',ans++;
}
cout<<ans<<"\n";
}
return 0;
}
本文介绍了一种算法,用于计算在给定的n*m矩阵中,从起点到终点仅能向下或向右移动的情况下,如何通过最少的修改使路径不越界。算法分析了可能越界的边界条件,并提供了一个具体的实现方案。
1172

被折叠的 条评论
为什么被折叠?



