codeforces
Tiya_s
一枚ECNU甜菜
展开
-
CF——E. Replace With the Previous, Minimize
题目链接 题目大意:给定一个字符串,问在执行k次操作后字典序最小的字符串是什么? 一次操作的定义:对于任意一个字符串中的字母s,将字符串内所有为s的字母转换为s-1 即b可以转换为a,c可以转换为b,……,z可以转换为y。 基本思路: 因为是要将字符串转换为字典序最小的字符串,因此执行的操作优先考虑下标较小的字符 对于操作的理解:对于某个字母m,如果要将其转换为a,则执行m-a次操作,我们可以将整个字符串中的所有[a,m]区间内的字母都转换为a。(可以手动从m开始模拟,理解为逐步翻牌的感觉) 转换为代码思原创 2022-05-11 13:41:09 · 352 阅读 · 0 评论 -
CF——Nastia and a Hidden Permutation
惭愧的说cf题刷的太少了 这是第一道cf上的交互题打卡 全程想了两个晚上,只想到了用1,2和n-1,n去猜 也猜到了要两个两个组合 因此是要3/2n次 Q 但是万万没有想到是利用max来算 但是真的双手称赞这道题(不知道为啥 就是觉得很妙的说! 题目大意 一个数组a,长度为n,数组的值是属于1-n的排列,但是顺序不确定 通过提问,来求出这个数组 每次提问,可以给出 1 i j x 返回给的值=max(min(a[i],x),min(a[j],x+1)) 2 i j x 返回给的值=min(max(a[i],原创 2021-05-20 00:07:46 · 111 阅读 · 0 评论 -
CF——Increasing by Modulo
题目链接 贪心算法 原则总体是枚举操作的次数,(使用二分枚举),让前面的数尽量小。 从下标1-n开始遍历,在每一次相邻比较的时候,都遵守原则如下: 1.如果a[i]在数值上比maxx小,本身未满足 判断其是否可以扩大成为maxx,如果可以就将其变成maxx,如果不可以就此次枚举失败; 2.如果a[i]在数值上比maxx大,本身满足 判断其是否可以操作变成(maxx+m)%m,那么a[i]也变成maxx了 如果其不能操作成为maxx,那么其保留原来的,maxx=a[i](目前最大的) #include<原创 2020-07-27 23:10:44 · 181 阅读 · 0 评论 -
CF——intersting array线段树
很大部分借鉴了此链接感谢! 上次全部传参数,这次尝试一下结构体存区间,少传一点参数……阿巴阿巴阿巴 特别容易错的是位运算,不要忘记加括号,或者直接+代替|不太对 还有数组的大小开4倍比较好 #include<cstdio> #include<algorithm> #include<iostream> #include<cstring> using namespace std; const int NN=2e5+5; struct Node { int原创 2020-07-27 14:09:09 · 110 阅读 · 0 评论 -
CF——powerful array莫队模版
极大部分借鉴了此链接 至今不太理解莫队的奇偶排序和分块思想带来的超大变化…… 先整理模版再说 #include<iostream> #include<cmath> #include<set> #include<map> #include<algorithm> #include<cstdio> using namespace std; const int NN=1e6+5; struct Node { int L,R; i原创 2020-07-27 08:48:01 · 107 阅读 · 0 评论