zoukankan      html  css  js  c++  java
  • CF

    my english is poor

    给你一列全部站立的骨牌,同时向左或向右推其中的几个

    保证推得方式为: 。。。左,右,左,右,左。。。

    即不存在两个相邻的又往相同方向推倒的

    刚开始是从左往右一个一个遍历,若第一次推的为往左,将它前面的加起来

    再根据 L ,R 判断,累加站立的,还有。。。。太麻烦了

    写好程序测试数据正确,提交后WA。。。

    有想到用数组记下站立的个数,但不知如何实现。。。

    百度一下。。。刚开始看不懂代码。。先提交。。AC。。了

    代码如下,注释是我自己的理解

    #include<stdio.h>
    #include<string.h>
    char ch[3005];
    int k[3005];             //标记数组:1 表示倒下,0 表示站立
    int main()
    {
        int n,i;
        scanf("%d",&n);
        memset(k,0,sizeof(k));  //初始化全部站立
        scanf("%s",ch+1);       //数组 ch 从下标 1 开始
        for(i=1; i<=n; i++)
        {
            if(ch[i]=='L')     //第 i 个字符为 L ,是往左推的
            {
                for(int j=i; j>0; j--)  //往左找
                {
                    k[j]=1;             //先全部推倒
                    if(ch[j]=='R')       //突然发现前面有个往右推的,不中,不能全推倒
                    {
                        if((i-j)%2==0)    //若它们中间的骨牌个数为奇数
                            k[(i-j)/2]=0; // 将中间那个骨牌扶起
                        break;              //跳出循环,不往前倒了
                    }
                }
            }
            if(ch[i]=='R')            //第 i 个字符为 R 往右推倒
            {
                for(int j=i; j<=n; j++)  //往右找
                {
                    k[j]=1;              //也先全推倒
                    if(ch[j]=='L')       //突然发现后面有个往左推的
                    {
                        if((j-i)%2==0)   //若它们中间的骨牌个数为奇数
                            k[(j+i)/2]=0;  //将中间那个骨牌扶起
                        i=j;              //再从后面发现的那个往左推的开始找
                        break;        //跳出循环,不能往后推了
                    }
                }
            }
        }
        int cnt=0;
        for(i=1; i<=n; i++)    //推完了,累死我了,放松一下,统计统计几个没有战死沙场的
            if(!k[i])
                cnt++;
        printf("%d
    " ,cnt);
        return 0;
    }
  • 相关阅读:
    服务器搭建纪录linux+mysql+nginx+php
    win7 64下安装mysql-python报错的解决办法
    jQuery treeview的简单用法
    不测的秘密:精准测试之路----读书笔记(第一章)
    [摘]ASP.Net标准控件(TextBox控件)
    让两个Div并排显示
    ScrollView里面添加ListView时,解决ListView的显示问题
    注册信息时,验证码的发送与验证
    头像图片上传到sd及服务器
    把图片转换成圆形图片
  • 原文地址:https://www.cnblogs.com/Houheshuai/p/3683840.html
Copyright © 2011-2022 走看看