zoukankan      html  css  js  c++  java
  • Codeforces Beta Round #91 (Div. 1 Only) B. luckTransformation(简单模拟+区分特殊情况)

    这道题的就是简单得模拟即可;

    但是要注意的地方是当存在447的情况是会出现无限循环 :477 447 477 447........

    所以要把它当成特别情况拿出来区分,这样才不会超时

    if(0==k) break;的位置要放对,应该在一进循环就判断k是否为0;不能等操作过一次之后再判断

    #include<iostream>
    #include<cstring>
    #include<map>
    using namespace std;
    
    char st[100100];
    
    int main(){
        int n,k,counter;
        scanf("%d%d",&n,&k);
        scanf("%s",st+1);
        
        for(int i=1;i<n;i++){
            if(0==k) break;
            if(st[i]=='4'&&st[i+1]=='7'){
                k--;
                if(i%2==1){
                    st[i+1]='4';
                    if(i+2<=n&&st[i+2]=='7'){
                        st[i+1]=(k&1)?'7':'4';
                        break;
                    }
                }
                else st[i]=st[i+1]='7',i-=2;            
            }        
        }
        printf("%s
    ",st+1);
        return 0;
    }
  • 相关阅读:
    AS3 判断双击事件
    php 数据类型转换与比较
    几行几列算法
    CCNode的属性说明
    bitmapdata的知识点
    addFrameScript用法
    TweenMax.allTo
    flash TweenMax用法
    flash流媒体资料
    c实现windows socket
  • 原文地址:https://www.cnblogs.com/yuanshixingdan/p/5482491.html
Copyright © 2011-2022 走看看