自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 CF1023C Bracket Subsequence

个字符的括号序列(括号匹配),输出含。个字符的括号序列(括号匹配)。

2024-09-25 21:26:36 326

原创 CF231C To Add or Not to Add

为重复次数,算出重复最多的数,然后以为是从小到大排列的,又可以找出最小数。进行从小到大排序,这样可以使最接近的几个数都聚在一起,然后用。

2024-09-25 21:25:57 356

原创 CF1620E Replace the Numbers

从前往后操作的话,出现第二种操作:它的作用域在该数之前,但是我们没有好的办法进行改变。所以我们可以从后往前来,先用。这样类似由结果往前推导,有点类似后缀数组计算。影响复杂度的是第二种操作,如果将一个数组中所有的。最后的答案是倒序的,我们只要反转一下即可。,极其影响复杂度,考虑使用数组标记。

2024-09-25 21:22:50 899

原创 CF1359C Mixing Water

从热水开始,每次交替倒入盆中,可以发现如果倒的次数为偶数次,那么盆中水温一定为冷热水的平均值。的部分,首先可以得到他们需要的倒水次数一定是奇数,且如果倒水次数从。周围枚举判断下哪一次操作才是真正的答案,计算误差不会太大,所以在。,而如果倒的次数为奇数次,那么盆中水温将随着倒的次数的增多,从。开始,按照奇数的顺序计算水温,则肯定会有某一次操作。可以得到,如果操作次数为偶数次,则平均水温一定为。由于操作次数一定是个整数,所以可以在求出此时的。,但此时答案操作次数为奇数次,令答案为。次时,得到水温总和为。

2024-09-25 21:22:18 1098

原创 CF1255B Fridge Lockers

条边连完之后的权值都是一样,我们就考虑形成最大环的连法,对于多出来的边,肯定是连权值最小的边,题目给了说,两点之间可以连任意多的边。根据题意,每个点至少连两条边,

2024-09-25 21:21:24 208

原创 CF1244B Rooms and Staircases

存在一个和多个,可以共同讨论。出现在最左边和最右边的位置。最左边的贡献将是当前位置。两者相比较,取最大的。

2024-09-25 21:19:43 1147

原创 CF1741D Masha and a Beautiful Tree

一个从局部到整体的思想,先确定局部的先后顺序,维护树内的先后顺序。通过缩小树的范围确定每次是否要移动,每相邻两个点的编号的大小比较来确定是否要进行移动。

2024-09-25 21:19:09 302

原创 CF1335C Two Teams Composing

在一个数组中挑些数分为两组,一组全不相同,一组全部相同。除去这一种,还剩 $ x - 1$ 种数字。,并且求出这些数字中个数最多的一种是多少个,假设是。还可以分一个出去,那么最终答案再增加一个。我们求出一共有多少种数字。

2024-09-25 21:17:56 504

原创 CF868B Race Against Time

求出每个针所指的角度范围,然后记得从小到大排序,最后按照左闭右开去判断是否属于同一块区域。

2024-09-25 21:17:24 392

原创 CF1158A The Party and Sweets

我们需要先判断不符合现实的情况,就是在男孩中的最小红包的最大应该小于女孩最大红包的最小,因为每个男孩都要给女孩红包,如果存在一个男孩的最小红包都大于这个女孩收到的最大红包是不可能的。个女孩,然后每一个男孩都要给女孩红包,给出每一个男孩给出最小的红包,和给出每一个女孩收到的最大的红包,让你求出怎样发红包使得红包总和最小。很明显直接贪心,让最小红包最大的派给女孩,但是你最小的红包还是要派出去,所以最多派。个女孩,但是如果她的最大红包恰好是你的最小,也能派。

2024-09-24 22:24:57 506

原创 CF1355B Young Explorers

的值从小到大排序,然后从前向后遍历排序后的数组,并记录一个。值,表示这个人如果组队了,队伍应当人数大于等于。值,表示当前已经遍历过且没有队伍的人数。求最多能组出多少个队伍,但有人可以没有队伍。个人,你需要给这些人组队。,则表示我们可以让这。

2024-09-20 22:19:46 862

原创 CF1421B Putting Bricks in the Wall

这是一道思维题,不用想得很深,我们只需要知道一开始走出起点的限制有两个格子。那么只要使得这起点格子和终点格子起冲突,让这两组的格子元素值相反即可。,走到终点也有两个格子限制。

2024-09-19 21:40:12 728

原创 CF1461B Find the Spruce

时的情况,所以直接继续判断即可。暴力判断当前行是否满足,如果满足我们继续将。或者.组成的图形,一个图形高度为。的整个过程具有连续性,比如说当。加大然后继续向下判断,判断。

2024-09-19 20:57:59 1226

原创 CF1484B Restore Modulo

开始递减,可以发现如果整个序列是递减的合法序列那么一定是等差递减,这时。,否则就不存在这样递减的序列。同理等差递增的序列。,序列合法当且仅当序列的所有数都相等。回代判断序列是否合法时注意还要判断。,抓紧这个条件研究序列能发现:若。首先本题最重要的一个条件是。

2024-09-19 20:57:21 702

原创 CF1632B Roof Construction

这道题目我们想要使得答案最小,就要让相邻两个数的高位尽量相等,连续的数必然也是要与其它数交界的,可以选择一端在边界,另一端也必须要与最高位不是。必然存在,要让剩下的位最小就只能让最大数和最小数接触。剩下的数随便排,无论怎么排都不会比最大值更大。的数接触,那么异或之后最高位的。

2024-09-18 19:07:47 307

原创 CF1536B Prinzessin der Verurteilung

给你一串字符串,然后按字典序求第一个没在这个字符串中出现的子串,如样例。先用 set 保存出现过后的子串,然后进行判断。,所以子串最长长度为。

2024-09-18 19:07:13 456

原创 CF1521B Nastia and a Good Array

最小,所以我们直接找到最小的数,然后将数组变成向左右两边,每个数都递增加一的序列即可。本题数组中最小的数一定会留下,并且题目没有要求。给一个数组,想要让这个数组满足。

2024-09-18 19:06:30 677

原创 CF1519C Berland Regional

而每所大学的贡献显然是独立的,所以对于每所大学枚举。个学生,它所能够提供贡献的最大的。时的情况,这减少了我们的工作量。,然后用前缀和算贡献即可。

2024-09-18 19:04:30 561

原创 CF1494B Berland Crossword

容易发现除了四个角以外,每条边上的格子不会相互影响,所以关键是四个角的状态。穷举所有四个角的情况,然后逐一判断。

2024-09-18 19:03:59 146

原创 CF1504B Flip the Bits

显然一个位置最多操作一次,由于本题只能操作前缀,因此从后往前判断,如果。,就要翻转一次,如果不能翻转则无解。

2024-09-18 19:02:29 334

原创 P4652 [CEOI2017] One-Way Streets

树,那么非树边,和每条飞树边覆盖的树上的链都是。首先任意环上的边一定不是必经边,答案为。打向下走的标记,最后判断一下就好了。在树上打链覆盖的标记即可。有路的限制,我们直接在。我们随便搞一颗原图的。

2024-09-18 19:01:58 480

原创 CF1635C Differential Sorting

首先非降序的情况直接输出,然后对于最后两个位置,一定要是非降序的,接下来我们对于前面的。步之内将这个数组变成非降序,问最终的数组长成什么样。的数组,你每次可以选择三个位置。

2024-09-18 19:01:21 663

原创 CF1726B Mainak and Interesting Sequence

所以一个数为偶数,一个数为偶数。两个数肯定是不一样的,异或和的序列肯定不是。为偶数:我们的思路大概还是凑出偶数个相同的数,这样异或和就是。个相同的数了,他们只有一个空序列,而空序列的异或和为。个数,这两个数的和要是奇数,因为偶数加奇数才是奇数。,但是这种在不能整除时是错误的,最后的数组之和不是。个相等的数了,偶数个相同的数异或和一定是。的简单方法:偶数个相同的数进行异或。,这时候只用满足分出的这些数之和是。一定是偶数,这时候我们就维护前。为偶数,这个显然是不成立的,从。是个偶数,我们可以设一个。

2024-09-17 18:08:34 965 1

原创 CF1787B Number Factorization

一定成立,所以要尽可能地将质因数乘在一起组成更大的数,加在一起得到最后的解。分解成质因数,要求是加和尽可能大,那么可以让所有的指数都是。

2024-09-17 18:08:04 405

原创 CF1796B Asterisk-Minor Template

的形式,所以可以对于每一个都判断一下就好了。

2024-09-17 18:06:33 192

原创 CF1816B Grid Reconstruction

是偶数,所以终点一定是直接加在费用里的,就填次大的数然后相邻数都是最小的数,既。要想交错和最大,就要相邻数的差尽可能大,那么我们就在起点填上最大的数。,以此类推我们可以发现一种可行的构造,即为第一行为。的相邻数应该是当前剩下的最大数,既。这样的大小交替的偶数,第二行是。这样除了终点以外大小交替的奇数。

2024-09-17 18:05:57 591

原创 CF1838B Minimize Permutation Subarrays

和原数组这两个排列组合一定会存在,只选1和全选,那么我们的目的就是让其他的组合尽可能不出现。的排列组合,它的子序列一定要包含。大的数字,所以如果我们将最大的。我们来看最容易出现的排列组合是。之间,那么一定无法形成长度为。只要不挨在一起,就不会出现。的位置,判断他们的位置,把。答案就很简单了,找到。首先,不管怎么交换,

2024-09-17 18:02:06 717

原创 CF1863C MEX Repetition

发现其实每次的只是相当于上一次平移了一下,因为当前没有的就是刚被替换掉的。于是只需要找到起始的数字就可以了。由于每次移动一个,初始的位置就是。很容易知道,我们在替换时,第一个数总是在上次没出现的数。然后没出现的数就变成了刚才被替换掉的数。但我们可以尝试找一找规律,如下。虽然我们推出了规律,但这玩意是。看到题目,让我们先来模拟一下。

2024-09-17 17:55:21 1033

原创 CF1867B XOR Palindromes

为奇数,除了上述贡献以外,我们发现中位字符对合法的每次答案贡献是。为偶数,我们观察本来已经对称的字符,每一对字符贡献为。显然最低满足要把所有不对称的改过来,分奇偶讨论。逐位异或,得到一个回文串。为好数:找到一个长度为。你需要输出一个长度为。

2024-09-17 17:54:28 479

原创 CF1905B Begginer‘s Zelda

根据题目,每次操作可以将一条链缩为一个点。个叶子结点,在这种情况下是最优的。观察发现,每条链最多可以覆盖。因此,若叶子结点的数量为。

2024-09-17 17:53:55 487

原创 CF1945C Left and Right Houses

枚举划分的点的地方,这样就可以算出来左右两边的满足期望的数量,如果两边都满足了,那就判断要不要更新划分点,注意这里更新的时候要尽可能贴近中心,这里为了判断精度,要把。注意读题,本题对于左右两边的要求是:如果左边有x个人,那么要满足。,所以直接用一个前缀和的办法来判断左右。还有一个小点,就是最左边的路划分点是。的人数都得到了满足,右边同理。

2024-09-17 17:52:27 1010

原创 CF1954B Make It Ugly

如果最后能将所有数字变为同一个,则称原数组为美丽的数组、现在给出一个美丽的数组,需要通过移除一些数字,破坏它的美丽,即让其最终无法变为同一个数字。(可以自己思考一下,一个数据一定只能变为与他相邻左右数据相同),比较以上三种方法,找到最短的一种,便是我们的答案了。一个美丽的数组,它的第一个元素和最后一个元素一定是一样的,因为我们变化数据只能选择中间的数,两边无法操作。的数据,将左边的全部移除,这样新的第一个就不等于我们的最后一个了。的数据,把它右边的所有数据移除,这样新的最后一个就不等于我们的第一个了。

2024-09-17 17:49:01 719

原创 CF1979B XOR Sequences

的每一个二进制位要么同时改变,要么同时不变。自增之后仍然满足条件,那么在自增过程中,从最低位开始的连续相同二进制位的个数为。能够自增的次数显然是最多的。考虑公共子序列如何形成。所有相同的位全部变为。

2024-09-17 17:48:31 772

原创 P9381 [THUPC 2023 决赛] 那些脑海里最珍贵的

现在,我们再来回顾一下题目中描述的内容,并结合输入和输出格式。在之前的分析中,我们主要梳理出了大部分常见的对象,并大致了解了各个对象可能的属性和行为。现在我们再来分析整个游戏的机制就没那么困难了。模拟 atkTeam 的一些被动技能let atk=从 atkTeam 中找到发起行动的人let action=从输入数据中读取他的行动模拟 atk 执行 action 的过程,更新状态模拟 atkTeam 的一些被动技能int count;// 按照从西到东的顺序排列 (why)// 攻击加成。

2024-09-17 17:46:15 1277

原创 P3342 [ZJOI2014] 璀灿光华

对于一个发光水晶,将它连接的水晶标号,从该水晶 bfs,若某水晶在相同步数下被访问过两次,那么它必然不是某一方向的直线上的。每个点的标号为最先访问到它的点的标号。这样可以整出发光水晶每个方向的水晶。不用建水晶立方体,因为发光水晶的方向都要枚举一遍,只需知道发光水晶每个方向有哪些水晶就可以了。之后把每个发光水晶朝向枚举一遍,复杂度。

2024-09-17 17:38:28 580

原创 CF1667B Optimal Partition

那么将其分成两段(左,中右)或(左中,右)两部分的话,结果会更好。值得注意的是排序时,对于前缀和相等的情况,我们要把位置大的放前面,这样我们更新的时候就不会使用位置小的去更新位置大的了(此时该段的总价值为。的话,我们也可以对整个区间进行拆分,若长度是偶数,那么可以分成左右两部分,结果不会更差(时,它加入答案才能获得更大的收益,否则,我们都可以通过拆的方式将它拆成长度为。的情况,会导致错误答案,而实际上根据第二段的分析,价值为。我们是不该考虑的)。时,我们将整个区间再进行拆分,那么得到的结果如果有。

2024-09-17 17:37:44 820

原创 P7143 [THUPC2021 初赛] 线段树

所以我们考虑计算每个点裂开的方案数,这就等价于求有多少个区间跨越这个节点的中点且不完全包含这个节点。那么能使得这个点裂开的区间可以分成三类:被这个点包含、完全包含左儿子、完全包含右儿子。考虑一个区间对应的节点个数,就是把这个区间扔到线段树上时,节点裂开的次数。直接计算的,且由于这是一棵标准线段树,可能的区间大小只有。但根据我们之前总计算式的形式,发现一个点的贡献可以表示为。,依然可以保持这个形式不变,右子节点向上转移同理。个位置,并设这个点两个儿子对应区间大小分别为。的节点整棵子树的贡献为。

2024-09-17 17:36:33 748

原创 CF1513A Array and Peaks

A sequence of nnn integers is called a permutation if it contains all integers from 111 to nnn exactly once.Given two integers nnn and kkk , construct a permutation aaa of numbers from 111 to nnn which has exactly kkk peaks. An index iii of an array aaa of

2023-08-16 10:31:23 113 1

原创 CF1516B AGAGA XOOORRR

Baby Ehab is known for his love for a certain operation. He has an array aaa of length nnn , and he decided to keep doing the following operation on it:Now he asks you if he can make all elements of the array equal. Since babies like to make your life hard

2023-08-16 10:24:37 115 1

原创 CF1485B Replace and Keep Sorted

Given a positive integer kkk , two arrays are called kkk -similar if:You are given an integer kkk , a strictly increasing array aaa and qqq queries. For each query, you are given two integers li≤ril_i \leq r_ili​≤ri​ . Your task is to find how many arrays

2023-08-16 10:13:55 121 1

空空如也

空空如也

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

TA关注的人

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