欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

JZOJ 5392. 【NOIP2017提高A组模拟10.5】Lucky Transformation

发布时间:2025/3/15 编程问答 31 豆豆
生活随笔 收集整理的这篇文章主要介绍了 JZOJ 5392. 【NOIP2017提高A组模拟10.5】Lucky Transformation 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

Description

Input

Output

Sample Input

7 2
2343223
4 1
2234

Sample Output

2243233
2334

Data Constraint

Hint

Solution

  • 这题就是一道模拟题。

  • 首先,我们显然可以发现性质①:显然操作一定是一直往后的,不会突然在前面找到一个合适的。

  • 那么通过性质①,我们可以直接扫一遍,时间复杂度 O(N+K) ,可以通过 70 分。

  • 通过观察,我们又可以发现性质②:出现“223”或“233”时,若奇偶性满足,就会一直循环。

  • 于是我们根据性质②,出现上述情况时判一下奇偶性即可 O(N) 解决,即可得 100 分。

Code

#include<cstdio> using namespace std; const int N=1e6+5; int n,k; char s[N]; int main() {while(~scanf("%d%d",&n,&k)){scanf("%s",s+1);for(int i=1;i<n && k;i++)if(s[i]=='2' && s[i+1]=='3')if(i&1){s[i+1]='2';k--;if(i+1<n && s[i+2]=='3') k=k%2;}else{s[i--]='3';k--;if(i) i--;if(s[i+1]=='2') k=k%2;}printf("%s\n",s+1);}return 0; }

总结

以上是生活随笔为你收集整理的JZOJ 5392. 【NOIP2017提高A组模拟10.5】Lucky Transformation的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。