首页 > 其他分享 >CF888C题解

CF888C题解

时间:2023-10-26 10:46:27浏览次数:33  
标签:CF888C int 题解 cin tie INF

  • 分析

    容易想到可以枚举每个字母,分别求其最小 \(k\) 取 \(\min\)。
    思考对于一个 \(k\),如何判其不合法。容易想到如果存在一个没有这个字符的长度大于等于 \(k\) 的子段,那么这个 \(k\) 就不合法。
    那么我们就知道如何求最小合法 \(k\) 了。找到最长的没有这个字符的子段,其长度加一即为 \(k\)。

  • 代码

#include <iostream>
using namespace std;
constexpr int MAXN(1000007);
constexpr int INF(0x3f3f3f3f);
string s;
int res(INF);
inline void read(int &temp) { cin >> temp; }
int main() {
	ios::sync_with_stdio(false), cin.tie(nullptr), cout.tie(nullptr);
	cin >> s;
	for (char i('a'); i <= 'z'; ++i) {
		int lst(-1), ans(0);
		for (int j(0); j < (int)s.length(); ++j)  if (s[j] == i)  ans = max(ans, j - lst - 1), lst = j;
		ans = max(ans, (int)s.length() - lst - 1);
		res = min(res, ans + 1);
	}
	cout << res << endl;
	return 0;
}

标签:CF888C,int,题解,cin,tie,INF
From: https://www.cnblogs.com/Kazdale/p/17788869.html

相关文章

  • CF888A题解
    分析因为一个数不可能同时大于并小于它两边的数,所以两种数的集合不存在交集。所以分别扫一遍两种数的个数加在一起即可。代码#include<iostream>usingnamespacestd;constexprintMAXN(1000007);inta[MAXN];intn,ans;inlinevoidread(int&temp){cin>>t......
  • Redisson分布式锁主从一致性问题解决
    Redis联锁联锁(RedissonMultiLock)对象可以将多个RLock对象关联为一个联锁,实现加锁和解锁功能。每个RLock对象实例可以来自于不同的Redisson实例。如果负责储存分布式锁的某些Redis节点宕机以后,而且这些锁正好处于锁住状态,就会出现死锁问题。为了避免这种情况的发生,Redisson内部提供......
  • AGC304Ex Constrained Topological Sort 题解
    AT一个直接的想法是拓扑排序时从小到大标号:每次在入度为\(0\)的点中找到\(l_{u}\lei\)且\(r_{u}\)最小的\(u\),令\(p_{u}=i\)问题是如果\(r_{u}\)很大,那么\(u\)被标号的优先级很低,会连累\(u\)的后继中\(r\)较小的点做法是倒着拓扑一遍,令\(r_{u}\leftarrow\m......
  • [ARC164D]1D Coulomb 题解
    [ARC164D]1DCoulomb题解题意在长为\(2N\)的数轴上放有\(2N\)个小球,第\(i\)个小球在坐标\(i\)的位置。\(2N\)个小球中有\(N\)个小球带正电,有\(N\)个小球带负点。记第\(i\)个小球带\(a_i\)单位电荷(\(a_i\in\{1,-1\}\)),小球之间受到力的作用,第\(i\)个小球受到......
  • P3214 [HNOI2011] 卡农 题解
    感觉不是很麻烦,可能就组合排列转化绕一点。。。抽象化题意给定\(n\)个元素,从中选出\(m\)个集合,要求:集合不为空,集合里不能有相同的元素\(m\)个集合都互不相同所有元素被选出的次数为偶数求方案数,并对\(100000007\)取模凭感觉是DP+组合数设\(dp[i][0/1]\)......
  • P6109 [Ynoi2009] rprmq1 题解-猫树+Segment Tree Beats
    20231025P6109[Ynoi2009]rprmq1题解-猫树+SegmentTreeBeats不愧是学长出的题。。。让我更深刻地理解了猫树。Statement传送门有一个\(n\timesn\)的矩阵\(a\),初始全是\(0\),有\(m\)次修改操作和\(q\)次查询操作,先进行所有修改操作,然后进行所有查询操作。一次修......
  • P5156 [USACO18DEC] Sort It Out P 题解
    题意有一个长度为\(n\)的排列\(a_1,a_2,\cdots,a_n\),选出\(\{1,2,\cdots,n\}\)的一个子集,对这个子集中的数依次进行如下操作:设当前数为\(v\),则若\(a_v\)大于\(a_{v+1}\)(如果有的话),就交换。如果小于,则若\(a_v<a_{v-1}\)(如果有的话),就交换。重复上述操作知道\(a_{v-1}<......
  • CF1555D题解
    分析注意到字符集大小很小,那么很容易就会产生回文,那么合法序列的种类就会比较有限。思考对于不同长度而言合法序列的种类,显然长度为\(1\)时无回文,长度为\(2\)只要两个字符不同就无回文。尝试扩展到长度为\(3\)时的情况,显然\(s_1\neqs_2\),\(s_2\neqs_3\)。发现\(s......
  • P9669 [ICPC2022 Jinan R] DFS Order 2 题解
    P9669[ICPC2022JinanR]DFSOrder2题解简要题意给定一棵\(n\)个节点的树,根节点是\(1\)。从根节点开始深度优先搜索这一棵树,dfs序是在搜索过程中访问节点的顺序。对于每一个节点\(v\),你要给出有多少种不同的dfs序,使得\(v\)出现在第\(j\)个位置。答案对\(99824......
  • P9769 HUSTFC 2023 简单的加法乘法计算题 题解
    动态规划#单调队列Question给出一个\(x=0\)通过一些操作把\(x\)变成\(y\)。有两个集合\(A,B\)。\(A\)包含了\(n\)个元素,分别是\(1-n\)的所有正整数,集合\(B\)给出\(m\)个元素,可以进行一下函数选择\(A\)中的一个元素\(a\),令\(x\)加上\(a\)选择\(B\)......