LuoguP7478 【A】StickSuger 题解
Content
给定一个长度为 \(n\) 的仅包含小写字母的字符串 \(s\),请找到一个二元组 \((i,j)\)(\(i<j\))使得在交换字符串 \(s\) 的第 \(i\) 个和第 \(j\) 个字符后会使新的字符串比原字符串的字典序大。若有多个满足要求的 \((i,j)\),输出 \(i\) 最大的那一个,如果仍有多个方案,输出 \(j\) 最大的那一个。
数据范围:\(1\leqslant n\leqslant 10^6\)。
Solution
先从后往前扫,扫到第一个 \(i\in[1,n)\) 使得 \(s_i<s_{i+1}\)(此处为 ASCII 码比较),记录下这个位置 \(p\) 。然后判断是否存在这个位置,如果不存在输出 -1
。
否则,再从 \(n\) 开始往后扫到 \(p+1\),扫到第一个 \(i\in[p+1,n]\) 使得 \(s_i>s_p\)(同上)。此时 \((i,p)\) 即为满足要求的二元组,也就是答案,直接输出即可。
Code
char s[1000007];
int main() {
int n = Rint, fl = -1; scanf("%s", s + 1);
R(int, i, n - 1, 1) if(s[i] < s[i + 1]) {fl = i; break;}
if(fl == -1) return printf("-1"), 0;
print_space(fl);
R(int, i, n, fl + 1) if(s[i] > s[fl]) return write(i), 0;
return 0;
}
LuoguP7478 【A】StickSuger 题解的更多相关文章
- 2016 华南师大ACM校赛 SCNUCPC 非官方题解
我要举报本次校赛出题人的消极出题!!! 官方题解请戳:http://3.scnuacm2015.sinaapp.com/?p=89(其实就是一堆代码没有题解) A. 树链剖分数据结构板题 题目大意:我 ...
- noip2016十连测题解
以下代码为了阅读方便,省去以下头文件: #include <iostream> #include <stdio.h> #include <math.h> #incl ...
- BZOJ-2561-最小生成树 题解(最小割)
2561: 最小生成树(题解) Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 1628 Solved: 786 传送门:http://www.lyd ...
- Codeforces Round #353 (Div. 2) ABCDE 题解 python
Problems # Name A Infinite Sequence standard input/output 1 s, 256 MB x3509 B Restoring P ...
- 哈尔滨理工大学ACM全国邀请赛(网络同步赛)题解
题目链接 提交连接:http://acm-software.hrbust.edu.cn/problemset.php?page=5 1470-1482 只做出来四道比较水的题目,还需要加强中等题的训练 ...
- 2016ACM青岛区域赛题解
A.Relic Discovery_hdu5982 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Jav ...
- poj1399 hoj1037 Direct Visibility 题解 (宽搜)
http://poj.org/problem?id=1399 http://acm.hit.edu.cn/hoj/problem/view?id=1037 题意: 在一个最多200*200的minec ...
- 网络流n题 题解
学会了网络流,就经常闲的没事儿刷网络流--于是乎来一发题解. 1. COGS2093 花园的守护之神 题意:给定一个带权无向图,问至少删除多少条边才能使得s-t最短路的长度变长. 用Dijkstra或 ...
- CF100965C题解..
求方程 \[ \begin{array}\\ \sum_{i=1}^n x_i & \equiv & a_1 \pmod{p} \\ \sum_{i=1}^n x_i^2 & ...
随机推荐
- 3、使用ListOperations操作redis(List列表)
文章来源:https://www.cnblogs.com/shiguotao-com/p/10560354.html 方法 c参数 s说明 List<V> range(K key, l ...
- 【CSS】水平居中和垂直居中
水平居中和垂直居中 2019-11-12 15:35:37 by冲冲 1.水平居中 (1)父级元素是行内元素,子级元素是行内元素,子级元素水平居中 ① 设置父级元素为块级元素 display:bl ...
- es插件安装
首先安装找到一样版本的地址: Release v7.6.1 · medcl/elasticsearch-analysis-ik (github.com) 下载最上面的编译版 将文件解压到plugins ...
- vue中 has no matching end tag.
这个前端编辑体验很不好,不给自动闭合代码....
- Stream流的使用
创建流 创建流的方式很多,从jdk8起,很多类中添加了一些方法来创建相应的流,比如:BufferedReader类的lines()方法:Pattern类的splitAsStream方法.但是开发中使用 ...
- 洛谷 P3307 - [SDOI2013]项链(Burnside 引理+数论)
题面传送门 看到题目我们显然可以将题目拆分成两部分:首先求出有多少个符合要求的珠子 \(c\),这样我们就可以将每种珠子看成一种颜色,题目也就等价于有多少种用 \(c\) 种颜色染长度为 \(n\) ...
- R语言实战-Part 2笔记
R 语言实战(第二版) part 2 基本方法 -------------第6章 基本图形------------------ #1.条形图 #一般是类别型(离散)变量 library(vcd) he ...
- Perl语言编程(大骆驼)
啰嗦几句 Perl的时代已经过去,现在年轻的同事们基本上都在用Python了.但个人认为单就生物信息文本处理而言,Perl语言是绝对够用的.最主要的是,前辈们搭建的流程大多数是Perl写的,因此,如果 ...
- Browse Code Answers
一个记录各种语言可能遇到的问题的论坛 :https://www.codegrepper.com/code-examples/
- 52-Linked List Cycle
Linked List Cycle My Submissions QuestionEditorial Solution Total Accepted: 102785 Total Submissions ...