自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 收藏
  • 关注

原创 Codeforces Round 946 (Div. 3) A~E G

思路:单独存下第12个数相同的个数 23个数相同的个数 13个数相同的个数 123都相同的个数 每次加上每两个为相同的数的个数 然后减去三个数都相同的 因为如果三个数都相同了 前三种也都符合了 所以减去相同的时候 就得减去三倍。思路:一个屏幕可以放下两个2x2的应用 所以我们先把2x2的应用先放下 看一下需要几个屏幕 然后把这些屏幕的剩余空间计算出来 放1x1的应用。思路:因为更换前后的数在排序去重后没有变化 所以将更新之后的数放进vector里排序去重 再找到一一对应的关系 从而还原字符串。

2024-05-21 09:03:04 648

原创 Educational Codeforces Round 154 (Rated for Div. 2) D - Sorting By Multiplication

思路:我们要操作数组变成递增的数据 因为你可以选择负数 所以我们可以让前x个数变成负的 后n-x个数为正的 我们先把每两个数之间的大小关系记录一下 数组d 1为我小于我后面的数 -1为我大于我后面的数 0为相同 循环枚举x为 1到n 因为我把前x个数变成负数最低需要操作一次 所以now先+1 然后每次遇到递减的也就是-1 我们就可以少操作一次 如果每次遇到1我们就得多操作一次 由于我们一开始的ans是把所有相邻相同的数也多操作一次 所以我们如果x的右边的数和x相同 我们就可以少操作一次。

2024-05-20 13:42:55 191

原创 Educational Codeforces Round 92 (Rated for Div. 2) B. Array Walk

思路:因为不能连续后退 所以我们后退一次就得再回去 z的数据范围最大为5 所以我们可以直接暴力 从1+1到1+k的每一个位置往前1~z次 找出最大的ans值 我们可以通过前缀和来记录走到当前位置的ans加上来回踱步的答案 注意判断越界和我往前n次之后能否走到那个位置。

2024-05-12 16:22:35 354 1

原创 Educational Codeforces Round 96 (Rated for Div. 2) D. String Deletion

【代码】Educational Codeforces Round 96 (Rated for Div. 2) D. String Deletion。

2024-05-05 17:37:58 145 3

原创 Educational Codeforces Round 128 (Rated for Div. 2) C. Binary String

思路:预处理前缀1的个数和0的个数 首先二分我的最小成本是多少 从0到n进行二分 检查当前成本能否完成任务 设置两个指针 l和r 代表我要保留的区间 左指针从1到n的起点枚举 右指针从0开始往右跑 当窗口内我保留的0的个数小于我能解决的最小成本时 r++ 更新一下当前的成本值为窗口外1的个数 取一个最小值 当我成本小于mid时 符合条件。算法:二分 前缀和 双指针 滑动窗口。

2024-05-04 16:43:11 288 1

原创 Codeforces Round 943 (Div. 3) B~E

思路:一个l指针指向a字符串的第一个字母 r指针指向b的第一个字母,若l和r指向的字母相同 则双指针往后移动 并更新ans值为l指针 若l和r不相同 则移动r指针至第一个可以和l指针匹配的位置 直到l或者r指针跑到n或m。思路:看数据范围可以得知 取模后的值最多为500 所以即使500个500 也远远小于1e9 所以可以大胆的 从后往前跑 从1e9开始 每次减去要取模的值 肯定符合条件。思路:一种验证可行的构造方法 为第一行的前n-2个单元格和最后一行的第二个和最后一个。PS:赛时没想出来 寄。

2024-05-03 11:45:26 920 1

原创 Educational Codeforces Round 100 (Rated for Div. 2) C. Busy Robot

思路:遍历 先判断当前操作执不执行 若执行 则更新走之前的时间和地点 和 走之后的时间和地点 若我走到头都下一个指令都不到 即当前指令有效 当前指令若不执行 则判断上次有效指令走之前的时间当前时间能走到什么位置 和下一次指令的开始时间能走到哪 若当前的目标位置为这个范围之内 则当前指令有效。

2024-05-02 22:23:10 237 1

原创 Educational Codeforces Round 99 (Rated for Div. 2) D. Sequence and Swaps

思路:给定的x从第一个开始交换 遇到第一个比它自己x大的数就交换 因为数据范围是500 每次交换都可以检查一下是否程递增 如果是 则输出当前换的个数 如果跑完还没有符合 那就输出-1。

2024-05-02 15:46:57 462 2

原创 Educational Codeforces Round 162 (Rated for Div. 2) D. Slimes

可能会出错的特殊样例:Case:41132 1 152 2 2 2 251 1 1 2 2Answer:-1-1 1 2-1 -1 -1 -1 -13 2 1 -1 2

2024-04-28 17:21:11 294

原创 Educational Codeforces Round 158 (Rated for Div. 2) D. Yet Another Monster Fight

【代码】Educational Codeforces Round 158 (Rated for Div. 2) D. Yet Another Monster Fight。

2024-04-28 15:29:42 262

原创 Codeforces Round 938 (Div. 3) C~F

思路:先开一个map记录一下b数组的数 假设b的数组位数为 m 使用双指针先指向 1 和 m 将 1 到 m 之间的数加入map2判断一下map里是否存在该数 若存在 则cnt++ 每次移动右指针 将新的数加入mp2 判断新数是否存在 判断左指针的数是否存在mp 若存在则 cnt-- 每次记录一下cnt是否>=k ans++题意:给定一个a数组和b数组 选出b数组位数个a数组的连续数组组成一个新数组 然后重新排序后对b进行匹配 要使相同的个数尽可能的多 至少为k个的 连续子段的数量。算法:双指针 map。

2024-04-09 09:27:21 605

原创 Educational Codeforces Round 120 (Rated for Div. 2) C. Set or Decrease

我们目前的操作次数为m 我们可以遍历后m个数(如果m>=n则 先让最小的数mix减去m-n+1 然后操作次数m变成n-1 )每次循环让变成最小数的个数往后推一个 但是相应的 我们可以对最小数自减的次数多了 每次让最小的数min进行自减 每次记录一下当前的贡献 并取一个最大值 当所有数的总和减去当前操作次数下的最大贡献 即当前操作次数下的最小数组和 如果最小数组和=n则 先让最小的数mix减去m-n+1 然后操作次数m变成n-1。题意简介:给定一个数组n个数 a1到an 和一个 k。

2024-04-04 21:30:12 429 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除