描述

Ly 喜欢幸运数字,众所周知,幸运数字就是数字位上只有 4 和 7 的数字。 但是本题的幸运序列和幸运数字完全没关系,就是一个非常非常普通的序列。 哈哈,是 不是感觉被耍了,没错,你就是被耍了。 Ly 现在手上有一个长度为 N 的幸运序列 a,他想这样子折腾这个序列:

如果已经折腾了 k 次了,就结束,否则找到一个最小的 i,使得(a[i]=‟4‟ &&a[i+1]=‟7‟) //0 < i < N;

找不到这样的 i就结束;

如果 odd(i),令 a[i+1]=a[i],否则令 a[i]=a[i+1],继续第一步。 Ly 想让你告诉他最后序列折腾成什么样子了。 需要注意的是, 本题的序列从 1 开始编号

输入

第一行 N,K; 第二行 N 个数描述序列 a。

输出

N 个数,输出最后的序列。

样例输入

7 4

4727447

样例输出

4427477

提示

100%的数据中 N<=100000, K<=1E9。

康复训练ing。。。

貌似就是一道模拟题,发现只要出现“447”或者“477”(中间的数字是偶数位)就会死循环,这样判断一下就没了。

模拟大法好!!!

代码:

#include<bits/stdc++.h>
#define N 100005
using namespace std;
inline int read(){
    int ans=0;
    char ch=getchar();
    while(!isdigit(ch))ch=getchar();
    while(isdigit(ch))ans=(ans<<3)+(ans<<1)+(ch^48),ch=getchar();
    return ans;
}
int n,k,a[N];
char ss[N];
int main(){
    n=read(),k=read();
    scanf("%s",ss+1);
    for(int i=1;i<=n;++i)a[i]=ss[i]-'0';
    for(int i=1;i<=n;++i){
        if(!k)break;
        if(a[i]==4&&a[i+1]==7){
            --k;
            if(i&1)a[i+1]=4;
            else{
                a[i]=7;
                if(a[i-1]==4){a[i]=(k&1)?4:7;break;}
            }
        }
    }
    for(int i=1;i<=n;++i)cout<<a[i];
    return 0;
}

2018.08.27 lucky(模拟)的更多相关文章

  1. 2018.08.30 NOIP模拟 wall(模拟)

    [问题描述] 万里长城是中国强大的标志,长城在古代的用途主要用于快速传递军事消息和抵御 外敌,在长城上的烽火台即可以作为藏兵的堡垒有可以来点燃狼烟传递消息. 现在有一段 万里长城,一共有 N 个烽火台 ...

  2. 2018.08.22 NOIP模拟 string(模拟)

    string [描述] 给定两个字符串 s,t,其中 s 只包含小写字母以及*,t 只包含小写字母. 你可以进行任意多次操作,每次选择 s 中的一个*,将它修改为任意多个(可以是 0 个)它的前一个字 ...

  3. 2018.08.19 NOIP模拟 change(简单模拟)

    Change 题目背景 SOURCE:NOIP2015-SHY-10 题目描述 Alice 和 Bob 又聚在一起了!他们已经厌倦了取石子游戏,现在他们热衷于切题.于是,Alice 找到了一道题让 B ...

  4. 2018.06.27 NOIP模拟 节目(支配树+可持久化线段树)

    题目背景 SOURCE:NOIP2015-GDZSJNZX(难) 题目描述 学校一年一度的学生艺术节开始啦!在这次的艺术节上总共有 N 个节目,并且总共也有 N 个舞台供大家表演.其中第 i 个节目的 ...

  5. 2018.08.30 NOIP模拟 graph(dfs序/树剖+线段树)

    [描述] 给你一个图,一共有 N 个点,2*N-2 条有向边. 边目录按两部分给出 1. 开始的 n-1 条边描述了一颗以 1 号点为根的生成树,即每个点都可以由 1 号点 到达. 2. 接下来的 N ...

  6. 2018.08.30 NOIP模拟 kfib(矩阵快速幂+exgcd)

    [输入] 一行两个整数 n P [输出] 从小到大输出可能的 k,若不存在,输出 None [样例输入 1] 5 5 [样例输出] 2 [样例解释] f[0] = 2 f[1] = 2 f[2] = ...

  7. 2018.08.29 NOIP模拟 movie(状压dp/随机化贪心)

    [描述] 小石头喜欢看电影,选择有 N 部电影可供选择,每一部电影会在一天的不同时段播 放.他希望连续看 L 分钟的电影.因为电影院是他家开的,所以他可以在一部电影播放过程中任何时间进入或退出,当然他 ...

  8. 2018.08.29 NOIP模拟 table(拓扑排序+建图优化)

    [描述] 给出一个表格,N 行 M 列,每个格子有一个整数,有些格子是空的.现在需要你 来做出一些调整,使得每行都是非降序的.这个调整只能是整列的移动. [输入] 第一行两个正整数 N 和 M. 接下 ...

  9. 2018.08.29 NOIP模拟 pmatrix(线性筛)

    [问题描述] 根据哥德巴赫猜想(每个不小于 6 的偶数都可以表示为两个奇素数之和),定义 哥德巴赫矩阵 A 如下:对于正整数对(i,j),若 i+j 为偶数且 i,j 均为奇素数,则 Ai,j = 1 ...

随机推荐

  1. xml 创建 和 处理 及其修改

    #创建xml import xml.etree.ElementTree as ET new_xml = ET.Element('namelist') personinfo = ET.SubElemen ...

  2. Jsonlib 属性过滤器

    /** * @title JSON转换属性过滤器 * @description 用于JSON lib的JSON转换 * @author maohuidong * @date 2017-04-06 */ ...

  3. sublime打开文本时会记忆上次关闭时鼠标停留的位置

    sublime打开文本时会记忆上次关闭时鼠标停留的位置

  4. 使用FIO测试磁盘iops

    我们如何衡量一个存储的性能呢?IOPS(Input/Output OperationsPer Second),即每秒进行读写(I/O)操作的次数是国际上通用的存储性能衡量标准,IOPS越高意味着在同一 ...

  5. Quartz+TopShelf实现Windows服务作业调度

    Quartz:首先我贴出来了两段代码(下方),可以看出,首先会根据配置文件(quartz.config),包装出一个Quartz.Core.QuartzScheduler instance,这是一个调 ...

  6. SVM支持向量机推导,工具介绍及python实现

    支持向量机整理 参考: Alexandre KOWALCZYK大神的SVM Tutorial http://blog.csdn.net/alvine008/article/details/909711 ...

  7. sql:查询课程号'0312091006'成绩排名第5到第10之间的学生学号

    select top 6 sno from (select top 10 sno,mark from student_Coursewhere ccno='0312091006' order by ma ...

  8. Android自定义实现微信标题栏

    Android自定义实现微信标题栏     前言:在android的开发中有时我们需要更个性化的标题栏,而不仅仅是系统预定义的图标加软件名,同时有时候我们需要在标题栏中实现更多功能,如添加按钮响应用户 ...

  9. IEdevelopToolbar ie浏览器的css代码调试工具

    使用IEdevelopToolbar的“选择元素”工具(ctrl+b),选取你要内容的地方下方的DIV,我们就可以找到几个关键字

  10. Spring boot starter pom的依赖关系说明

    Spring Boot 通过starter依赖为项目的依赖管理提供帮助.starter依赖起始就是特殊的maven依赖,利用了传递依赖解析,把常用库聚合在一起,组成了几个为特定功能而定制的依赖. sp ...