CodeForces - 1316B String Modification(找规律)
题目链接:点击查看
题目大意:给出一个字符串 s ,需要求出一个 k ,满足 i ∈ [ 1 , n - k + 1 ]中,每个s[ i : i + k - 1 ]都反转一遍,使得最后得到的字符串字典序最小,若有多个 k 满足条件,求出最小的那个 k
题目分析:读完题后最暴力的方法是 n * n * n ,显然是不行的,考虑是否有规律可循,自己手动模拟了一下发现确实有规律,但是比赛的时候没有发现奇偶又别,于是很可惜的被rj掉了,难过
自己拿着abcd和abcde试试就知道规律了:以 k = 3 为例:
abcd -> Cbad -> CD|AB
abcde -> Cbade -> CDabe -> CDE|BA
在最后结果那个部分我加了一个断点,很显然最后的结果由两部分组成:
- 前半部分:s[ k : len ]
- 后半部分:
- 如果 n - k + 1 为奇数:s[ 1 : k ]
- 如果 n - k + 1 为偶数:s[ 1 : k ]翻转
然后n*n暴力维护答案就好了
代码:
#include<iostream>
#include<cstdio>
#include<string>
#include<ctime>
#include<cmath>
#include<cstring>
#include<algorithm>
#include<stack>
#include<climits>
#include<queue>
#include<map>
#include<set>
#include<sstream>
using namespace std;typedef long long LL;typedef unsigned long long ull;const int inf=0x3f3f3f3f;const int N=2e5+100;int main()
{
#ifndef ONLINE_JUDGE
// freopen("input.txt","r",stdin);
// freopen("output.txt","w",stdout);
#endif
// ios::sync_with_stdio(false);int w;cin>>w;while(w--){int n;string s;cin>>n>>s;int ans=1;string mmin=s;for(int k=1;k<n;k++){string temp=s.substr(k);string rev=s.substr(0,k);if((n-k+1)%2==0)reverse(rev.begin(),rev.end());temp+=rev;if(temp<mmin){ans=k+1;mmin=temp;}}cout<<mmin<<endl<<ans<<endl;}return 0;
}
CodeForces - 1316B String Modification(找规律)相关推荐
- Codeforce-CodeCraft-20 (Div. 2)-B. String Modification (找规律+模拟)
Vasya has a string s of length n. He decides to make the following modification to the string: Pick ...
- Lieges of Legendre CodeForces - 603C (博弈论,SG找规律)
大意: 给定$n$堆石子, 两人轮流操作, 每次操作两种选择 $(1)$任选非空堆拿走一个石子 $(2)$任选石子数为$2x(x>0)$的一堆, 替换为$k$堆$x$个石子. ($k$给定) 最 ...
- String Modification CodeForces - 1316B(规律)
Vasya has a string s of length n. He decides to make the following modification to the string: Pick ...
- Codeforces Round #715 (Div. 1) B. Almost Sorted 找规律
传送门 文章目录 题意: 思路: 题意: 思路: 找规律yydsyydsyyds. 一看没什么想法,所以打了个表,好家伙,不打不知道,一打不得了,下面是n=6n=6n=6的符合要求的情况: 不难发现, ...
- CodeForces - 603C Lieges of Legendre(博弈+找规律)
题目链接:点击查看 题目大意:首先给出n堆石子和一个k值,两人轮流按照规则操作,不能操作的一方即为失败,每一次都有两种操作: 从任意一堆石子中取走一个石子 任选一堆偶数个的石子,将其转换成k堆x/2的 ...
- *【CodeForces - 202C 】Clear Symmetry (思维,找规律,特判)
题干: Consider some square matrix A with side n consisting of zeros and ones. There are nrows numbered ...
- 【CodeForces - 764A】Taymyr is calling you (找规律,水题)
题干: Comrade Dujikov is busy choosing artists for Timofey's birthday and is recieving calls from Taym ...
- [codeforces 1333A] Little Artem 读懂题+找规律+多举例
Codeforces Round #632 (Div. 2) 比赛人数12810 [codeforces 1333A] Little Artem 读懂题+找规律+多举例 总目录详见http ...
- Educational Codeforces Round 87 (Rated for Div. 2) C1+C2(几何图形/找规律)
C1传送门 C2传送门 给出一个正2n边形,求出其最小外接正方形的边长 当n为偶数时 不难发现正多边形刚好有四条边和正方形的四条边重合,观察发现该正多边形的边长刚好为内接圆的直径 当n为奇数时 第一眼 ...
最新文章
- python中统计计数的几种方法
- HDU - 5242 Game(树形dp+树链剖分/树上贪心+思维)
- 【solr专题之四】关于VelocityResponseWriter
- mysql + IDEA + JDBC
- access的ole对象换成mysql_ACCESS的Ole对象读取写入
- 苹果电脑怎么投屏到电视_tcl电视怎么投屏
- create-react-app中配置antd按需加载、less、proxy、路径别名
- ubuntu14.04 LTS版本下安装配置gem5环境
- Android 应用启动速度优化
- 计算已知经纬度两点的距离_python
- 【C语言】谭浩强C语言程序设计第五版135页例5.11译密码题的新解
- 浪潮配置ipim_浪潮服务器管理口IP设置_IPMI设置
- 止汗 咒语_咒语机器学习平台上线
- 抖音电商直播基地项目运营规划商业品牌计划书方案模板
- 微端是什么意思?微端对服务器性能配置要求
- 典型的计算机串行和并行总线,串行总线和并行总线的区别
- MKS PI V1.0使用说明书
- 中国 GitHub 霸榜乱象! 国内程序员的脸都被丢尽了!
- Conga在亚太业务增长迅猛之际举办首次亚太用户大会
- 我和 XOP的 醉生梦死