【模拟】10-15 题解 trans
Trans
题目描述
Tgopknight决定使用他的幸运数字2和3来进行这个游戏,他一开始有n个数字,记为{dn}需要 进行k次操作,每次操作找到最小的x使得dx = 2并且dx+1 = 3,此时如果x为奇数,则令dx+i = 2,反之令dx = 3,若没有这样的x则数字不变。
Tgopknight现在想知道进行完所有操作后这些数字变成了什么。
输入输出
input
本题有多组数据。
每组数据第一行是两个正整数n和k分别表示数字个数和操作次数。
第二行有n个数字,数字之间没有空格。
output
对于每组数据,输出一行,为操作进行完之后的结果。
样例
input
7 2
2343223
4 1
2234
output
2243233
2334
数据范围
对于前50%的数据n <=104, k <= 104
对于前70%的数据k <= 106
对于 100%的数据1 <= n <=106 ,0 <= k <=109 ,数据组数不超过10
思路
- 考虑遇到一个首位为奇数的233或者223 Tgopknight会使其在这二者之间互相转变,那么只需要考虑剩余的操作数的奇偶性即可。
- 时间复杂度〇(n)期望得分100分。
代码
#include <bits/stdc++.h>
using namespace std;
char s[1000005];
int n, k;
int main() {
freopen("trans.in","r",stdin);
freopen("trans.out","w",stdout);
while (~scanf("%d%d%s", &n, &k, s)) {
for (int i = 0; i < n && k; i++) {
if (s[i]=='2'&&s[i+1]=='3'&&s[i+2]=='3'&&!(i%2)) k%=2;
if (k&&s[i]=='2'&&s[i+1]=='3') s[i]=s[i+1]=(i%2)?'3':'2',i-=2,k--;
}
puts(s);
}
return 0;
}
【模拟】10-15 题解 trans的更多相关文章
- [NOIP2018模拟10.15]比赛报告
闲扯 昨晚又颓到好晚,Yali的降智光环感觉持续至今... 题面好评 T1T3都玩过 逃) T1没看多久就开始写二分+并查集 然后T3看着眼熟想了一个多小时...结果啥都没想出来 赶紧看T2发现还是没 ...
- [JZOJ 5906] [NOIP2018模拟10.15] 传送门 解题报告(树形DP)
题目链接: https://jzoj.net/senior/#contest/show/2528/2 题目: 8102年,Normalgod在GLaDOS的帮助下,研制出了传送枪.但GLaDOS想把传 ...
- [JZOJ 5905] [NOIP2018模拟10.15] 黑暗之魂(darksoul) 解题报告 (拓扑排序+单调队列+无向图基环树)
题目链接: http://172.16.0.132/senior/#main/show/5905 题目: oi_juruo热爱一款名叫黑暗之魂的游戏.在这个游戏中玩家要操纵一名有 点生命值的无火的余灰 ...
- 【NOIP2016提高A组模拟10.15】最大化
题目 分析 枚举两个纵坐标i.j,接着表示枚举区域的上下边界, 设对于每个横坐标区域的前缀和和为\(s_l\),枚举k, 显然当\(s_k>s_l\)时,以(i,k)为左上角,(j,k)为右下角 ...
- 【JZOJ4820】【NOIP2016提高A组模拟10.15】最大化
题目描述 输入 输出 样例输入 3 2 4 0 -10 8 -2 -2 样例输出 4 数据范围 解法 枚举两条扫描线,在这两条扫描线之间的矩阵,可以将之转化为一个序列b[i]=a[i][1..m]. ...
- NOIP2016提高A组模拟10.15总结
第一题,就是将原有的式子一步步简化,不过有点麻烦,搞了很久. 第二题,枚举上下边界,维护一个单调队列,二分. 比赛上没有想到,只打了个暴力,坑了80分. 第三题,贪心,最后的十多分钟才想到,没有打出来 ...
- 【NOIP2016提高A组模拟10.15】打膈膜
题目 分析 贪心, 先将怪物按生命值从小到大排序(显然按这个顺序打是最优的) 枚举可以发对少次群体攻击, 首先将所有的群体攻击发出去, 然后一个一个怪物打,当当前怪物生命值大于2,如果还有魔法值就放重 ...
- 【NOIP2016提高A组模拟10.15】算循环
题目 分析 一步步删掉循环, 首先,原式是\[\sum_{i=1}^n\sum_{j=1}^m\sum_{k=i}^n\sum_{l=j}^m\sum_{p=i}^k\sum_{q=j}^l1\] 删 ...
- 【JZOJ4819】【NOIP2016提高A组模拟10.15】算循环
题目描述 输入 输出 样例输入 167 198 样例输出 906462341 数据范围 解法 令f(n)=∑ni=1i,g(n)=∑ni=1i2 易得ans=∑ni=1∑mj=1f(n−i+1)∗f( ...
随机推荐
- springboot 项目中css js 等静态资源无法访问的问题
目录 问题场景 问题分析 问题解决 问题场景 今天在开发一个springboot 项目的时候突然发现 css js 等静态资源竟然都报404找不到,折腾了好久终于把问题都解决了,决定写篇博客,纪录总结 ...
- C++ primer plus读书笔记——第13章 类继承
第13章 类继承 1. 如果购买厂商的C库,除非厂商提供库函数的源代码,否则您将无法根据自己的需求,对函数进行扩展或修改.但如果是类库,只要其提供了类方法的头文件和编译后的代码,仍可以使用库中的类派生 ...
- leetcode 1081
开始的思路是遍历存储每个字符的所有位置,再进行扫描处理,但是实际操作并没有很熟练,于是在讨论区学习后,有了下面的解法! 首先需要知道不同的字符在字符串中的最后的位置(理论上的最优位置) 然后扫描字符串 ...
- 【近取 key】技术规格说明书
项目 内容 这个作业属于哪个课程 2021春季计算机学院软件工程(罗杰 任健) 这个作业的要求在哪里 技术规格说明书 我在这个课程的目标是 进一步提升工程化开发能力,积累团队协作经验,熟悉全栈开发流程 ...
- Linux性能调优命令之free
功能说明 free 命令显示系统使用和空闲的内存情况,包括物理内存.交互区内存(swap)和内核缓冲区内存.共享内存将被忽略 语法 free [参数] 参数 -b : 以Byte为单位显示内存使用情况 ...
- gdb调试多线程多进程
多进程调试 我们使用gdb调试程序,gdb的调试默认是调试父进程的,如果要做到对父进程和子进程都做到调试,所以附加了调试子进程的功能. 设置条件 如果让gdb可以同时调试多个程序,只需要设置follo ...
- SPECCPU2006 Spec2006 使用说明
http://www.vimlinux.com/lipeng/author/penglee5.html Spec2006使用说明 五 10 十月 2014 By penglee 工具介绍 SPEC C ...
- 使用 IPMI 远程为服务器安装操作系统教程
使用 IPMI 远程为服务器安装操作系统教程 shida_csdn 2019-01-09 11:30:10 9588 收藏 16展开一.什么是 IPMI? IPMI 是智能平台管理接口(Intelli ...
- Hibernate使用原生SQL语句进行无关联多表查询
背景:有两个表:CpCg与CpGg需要进行多表查询 因为CpGg表设计到与另外的表也有联系,因此师兄没有关联此两个表,只是用字段进行逻辑关联,CpGg表的cp字段与CpCg表的id字段逻辑关联
- 安装JDK 常见错误解决(Day_07)
在cmd中输入java -version或者java 或出现以下错误: 原因一:可能是你的JDK装的时间比较早,导致环境变量中的Path(此电脑->右击属性->高级系统设置->环境变 ...