zoukankan      html  css  js  c++  java
  • 题解 CF1391B 【Fix You】

    题目链接:https://www.luogu.com.cn/problem/CF1391B
    题意:给定一个n∗m的网格传送带,每个传送带上都有一个方向为,D代表向下,R代表向右。我们可以改变传送的的方向。(只能在下右之间做调整。)其中(n,m)处为柜台,我们要使得网格传送带上的行李都能到达柜台处,求我们至少要进行多少次操作更改。
    思路:我们发现,所有的货物都是向右或者向下的,也就是说所有的货物最终都是会运到网格传送带的最右端或最下端。因此,我们只需要将最右端处的传送带改成向下,最下端的传送带改成向右就可以满足题目要求了。
    代码如下:

    #include<iostream>
    #include<algorithm>
    using namespace std;
    char cell[103][103];
    int main()
    {
        ios::sync_with_stdio(false);
        cin.tie(0);
        int t;
        cin>>t;
        while(t--)
        {
            int n,m;
            cin>>n>>m;
            for(int i=1;i<=n;i++)
            {
                for(int j=1;j<=m;j++)
                cin>>cell[i][j];
            }
            int ans=0;
            for(int i=1;i<n;i++)//控制最右端的
            {
                if(cell[i][m]=='R')
                   ans++;
            }
            for(int i=1;i<m;i++)
            {
                if(cell[n][i]=='D')//控制最下端的
                   ans++;
            }
            cout<<ans<<endl;
        }
        return 0;
    }
    
  • 相关阅读:
    fopen和open的区别
    vc代码缩进
    防止u盘中autorun的一个小方法
    判断单链表是否有环
    四色原理
    Log4j的使用
    Ant学习笔记
    关于Oracle Exp00003问题的解决方法
    装机小记
    用iframe做编辑器
  • 原文地址:https://www.cnblogs.com/Acapplella/p/13492576.html
Copyright © 2011-2022 走看看