【SSLGZ 2770】2017年10月17日提高组 神奇变化
来源:互联网 发布:ios付费软件推荐 编辑:程序博客网 时间:2024/06/13 22:52
问题描述
给定一个有n个数字的序列,记作{an},需要进行k次操作,每次操作找到最小的x使得a(x)=2,a(x+1)=3,如果x为奇数,则令d(x+1)=2,反之令d(x)=3,若没有这样的x则数字不变。
求k此操作之后原数列会变成什么
输入
本题有多组数据。
每组数据第一行是两个正整数n,k分别表示数字个数和操作次数
第二行有n个数字,数字之间没有空格
输出
对每组数据输出一行为最终的数列
样例输入
7 2
2343223
4 1
2234
样例输出
2243233
2334
算法讨论
显然直接暴力模拟会超时,我们自己手推一下会发现以下规律:当223这一串数字的第一个2在奇数位上时,它会在223和233之间循环,当操作数为奇数时就是233,偶数时就是223;233时同理。那么我们找出这两个循环后,剩下的普通情况直接模拟就好了。
var i,n,k:longint; st:ansistring;function check1(x:longint):boolean;begin if (x mod 2=1) and (st[x]='2') and (st[x+1]='2') and (st[x+2]='3') then exit(true) else exit(false);end;function check2(x:longint):boolean;begin if (x mod 2=1) and (st[x]='2') and (st[x+1]='3') and (st[x+2]='3') then exit(true) else exit(false);end;begin// assign(input,'data1.in'); reset(input);// assign(output,'change.out'); rewrite(output); while not(eof) do begin readln(n,k); readln(st); for i:=1 to n do begin if k=0 then break; if check1(i) then begin if (k mod 2=1) then st[i+1]:='3'; break; end; if check2(i) then begin if (k mod 2=1) then st[i+1]:='2'; break; end; if (st[i]='2') and (st[i+1]='3') and (i mod 2=1) then begin st[i+1]:='2'; dec(k); end else if (st[i]='2') and (st[i+1]='3') and (i mod 2=0) then begin st[i]:='3'; dec(k); end; end; writeln(st); end;end.
Pixiv ID:61432734
阅读全文
0 0
- 【SSLGZ 2770】2017年10月17日提高组 神奇变化
- SSL2770 2017年10月17日提高组 神奇变化
- 【SSLGZ 2705】2017年8月17日提高组T1 游戏
- 【SSLGZ 2676】2017年8月10日提高组T1 数学
- 【SSLGZ 2774】2017年10月19日提高组 青蛙 (jump)
- 【SSLGZ 2775】2017年10月19日提高组 新壳栈 (stk)
- 【SSLGZ 2776】2017年10月19日提高组 整除(number)(容斥原理)
- 【SSLGZ 2783】2017年10月23日提高组T1 摆书
- 【SSLGZ 2788】2017年10月24日提高组 想法的升级
- 【SSLGZ 2790】2017年10月25日提高组T2 次方的运算
- 【SSLGZ 2793】2017年10月26日提高组T2 Deep(博弈)
- 【SSLGZ 2794】2017年10月26日提高组T2 Dark(dp)
- 【SSLGZ 2810】2017年10月30日提高组T2 数论
- 【SSLGZ 2811】2017年10月30日提高组T2 摘Galo
- 【SSLGZ 2812】2017年10月30日提高组T2 凤凰院真凶
- 【SSLGZ 2813】2017年10月31日提高组T1 注册
- 【SSLGZ 2667】2017年8月7日提高组T1 呵呵
- 【SSLGZ 2670】2017年8月8日提高组T1 作业
- BZOJ4027 [HEOI2015]兔子与樱花
- C++11——【USACO 4.4.3】——Frame Up
- 利用递归方法输出1~10所有整数的阶乘
- bzoj 1263
- 魔恩:关于CE搜到基址是mov eax,[ElementClient.exe+933138] 这种类型变更
- 【SSLGZ 2770】2017年10月17日提高组 神奇变化
- leetcode 209. Minimum Size Subarray Sum 3. Longest Substring Without Repeating Characters
- AndroidStudio插件管理
- 大数据任务安排第一期
- 关于数据库设计的一点心得
- TabLayout 关联了 ViewPager 下划线不见了?
- 【Spring】 (1)Aspect 自定义注解 使用该注解的地方 自动注入该注解里传的参数
- NOIP 2015 Day2 T3 运输计划(二分+dfs序+树上差分+倍增LCA)
- 开发相关的测试