m0_74039096 2023-03-26 12:02 采纳率: 62.5%
浏览 47
已结题

区赛题 奥特曼打怪兽 请求帮助

奥特曼打怪兽

小X是个奥特曼迷,他收集了好多各种各样的奥特曼玩具,什么佐菲奥特曼、赛文奥特曼、杰克奥特曼等等。当然,这里为了简化问题,我们不区分奥特曼的种类。仅有奥特曼是不好玩的,还要有对手,所以小X也会收集各种怪兽玩具。
一天,小X把这些玩具排成一排。在某一秒,如果某个奥特曼的右边相邻位置存在怪兽,这个奥特曼就会把它打败并将它踢到自己的左边。换句话说,如果第i个位置是奥特曼,第i+1个位置是怪兽,那么1秒钟后会变成第i个位置是怪兽,第i+1个位置是奥特曼。
我们用U表示奥特曼,M表示怪兽,如果一开始的排列是这样的:UUMM,则
1秒后:UMUM
2秒后:MUMU
3秒后:MMUU
我们发现,一段时间后,所有的怪兽都会在所有奥特曼的左边,现在的问题是这个时间是多少秒?

输入
一行,一个长度为n的由U和M组成的字符串(n≤106)。
如果第i个字符是U,表示这个位置是奥特曼,如果是M,表示这个位置是怪兽。

输出
输出一个整数,表示将队伍中的所有怪兽移到奥特曼左边所需的秒数。

样例

UUMM

3

#include <bits/stdc++.h>
using namespace std;

int main()
{
     ios::sync_with_stdio(0);
     string n;
     int u,m;
     cin>>n;
     for(int i=1;i<=n.size();i++) 
     {
         if(n[i]=='U')
         {
             u=u+1;
         }
         else if(n[i]=='M')
         {
             m=m+1;
         }
     }
     cout<<(u+m-1)/10<<endl; 
    return 0;
}



  • 写回答

2条回答 默认 最新

  • IT_service_mesh 2023-03-26 12:38
    关注

    参考GPT和自己的思路:你的程序存在几个问题:

    1. 在循环中,应该从0开始遍历字符串,因为下标从0开始计数,而不是从1开始。

    2. 在统计U和M的个数时,变量u和m没有初始化,应该初始化为0。

    3. 在输出答案时,题目中要求的是把所有怪兽移到奥特曼左边的时间,而你的程序输出的是把所有怪兽移到奥特曼右边的时间。正确的计算方式应该是(u + m - 1) / m。

    下面是修正过的代码:

    #include <bits/stdc++.h>
    using namespace std;
    
    int main() {
        ios::sync_with_stdio(0);
        string n;
        int u = 0, m = 0;  // 初始化为0
        cin >> n;
        for (int i = 0; i < n.size(); i++) {  // 从0开始遍历
            if (n[i] == 'U') {
                u = u + 1;
            } else if (n[i] == 'M') {
                m = m + 1;
            }
        }
        cout << (u + m - 1) / m << endl;  // 输出把怪兽移到奥特曼左边的时间
        return 0;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 4月3日
  • 已采纳回答 3月26日
  • 修改了问题 3月26日
  • 修改了问题 3月26日
  • 展开全部

悬赏问题

  • ¥15 matlab中使用gurobi时报错
  • ¥15 WPF 大屏看板表格背景图片设置
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭
  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂