积木游戏

题目描述

小云和小吉在玩积木游戏,他们手上有很多积木,每个积木上面都有一个字母。

现在他们把所有的积木都排在一条队列上,队列有一个完美值,这个完美值就是积木队列上的字母组成的字符串的字典序,字典序越大完美值就越大。

小云和小吉轮流玩游戏,每次游戏,玩家要把积木队列的第一个积木取出来,并把它放到积木队列的最后一个位置。

这个游戏看起来很简单,小云和小吉想知道这个游戏一直玩下去,所能得到的积木队列的最大完美值是多少?

输入输出格式

输入格式:

输入2行,第一行一个数n,表示积木数量
第二行一个长度为n的字符串,表示积木队列的初始状态

输出格式:

输出一行,最大完美值的积木队列

输入输出样例

输入样例:

11
abcdefghijk

输出样例:

kabcdefghij

提示信息

数据范围:
对于 20%的数据,n≤1000;
对于 40%的数据,n≤10^4;
对于 100%的数据,n≤3×10^5。

解法

#include <bits/stdc++.h>
using namespace std;
int n,i,j=1,k;
string s;
int main() {
   
	cin >>n >>s;
	while (i<n && j<n) {
   
		while (k<n && s[(i+k)%n]==s[(j+k)%n]) k++;
		if (k==n) break;
		if (s[(i+k)%n]<s[(j+k)%n])
			i=i+k+1;
		else
			j=j+k+1;
		if (i==j) i++;
		k=0;
	}
	k=min(i,j);
	cout <<s.substr(k,n) <<s.substr(0,k);
	return 0;
}

相关推荐

  1. 积木游戏

    2024-01-19 01:06:01       57 阅读
  2. 交易积累-世界著名的游戏框架

    2024-01-19 01:06:01       33 阅读
  3. 弹幕游戏开发-积分与连胜

    2024-01-19 01:06:01       43 阅读
  4. 积木——c++

    2024-01-19 01:06:01       30 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-19 01:06:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-19 01:06:01       101 阅读
  3. 在Django里面运行非项目文件

    2024-01-19 01:06:01       82 阅读
  4. Python语言-面向对象

    2024-01-19 01:06:01       91 阅读

热门阅读

  1. 【git】git更新远程分支到本地

    2024-01-19 01:06:01       61 阅读
  2. Vue前端规范【一】

    2024-01-19 01:06:01       50 阅读
  3. MYSQL 1

    MYSQL 1

    2024-01-19 01:06:01      59 阅读
  4. Django——django与环境搭建

    2024-01-19 01:06:01       52 阅读
  5. CDH6.3.2,不互通的cdh平台互导hive数据

    2024-01-19 01:06:01       50 阅读
  6. 【PyTorch简介】4.Building the model layers 生成模型层

    2024-01-19 01:06:01       44 阅读
  7. 学习记录1.10

    2024-01-19 01:06:01       55 阅读
  8. SQL笔记 -- 索引失效情况

    2024-01-19 01:06:01       56 阅读
  9. go语言的部分的

    2024-01-19 01:06:01       52 阅读
  10. HBase学习三:集群部署

    2024-01-19 01:06:01       56 阅读
  11. 【数据结构和算法】种花问题

    2024-01-19 01:06:01       55 阅读
  12. web块级如何居中,关于css/html居中问题

    2024-01-19 01:06:01       57 阅读