自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 CF1548B Integers Have Friends 题解

解题思路:遇事不决想差分。初步转换原问题,可以得到:对于这其中所有的 aia_iai​ 满足 ai−k mod m=0a_i-k\bmod m=0ai​−kmodm=0,其中 m≥2m\ge 2m≥2。这里的处理难点就是 kkk 不方便找出,考虑整个数组作差,这样无论 kkk 取什么值,都有原命题的一个充分必要条件: ai≡ai+1(modm)a_i\equiv a_{i+1}\pmod mai​≡ai+1​(modm),问题转化为差分数组(不妨记作 ddd)中最长的一段 gcd⁡i=lr(di)≥

2021-12-11 16:36:34 491

原创 题解 CF468C Hack it

不能交题解了/kk,但这道题不写的话几乎是无效的,那就瞎写吧。解题思路:当 xxx范围为[0,1e18][0,1e18][0,1e18]时:f(1e18+x)=f(1e18)+xf(1e18+x)=f(1e18)+xf(1e18+x)=f(1e18)+x,毕竟没有进位。若:∑i=01e18−1f(i)≡p( mod a)\sum_{i=0}^{1e18-1}f(i)\equiv p( \bmod a)∑i=01e18−1​f(i)≡p(moda)那么:∑i=x1e18−1+xf(i)\sum_{

2021-11-05 09:00:02 155

原创 CSP 反思

这篇反思是我一边放 MEGALOVANIA 一边写的,被审判了属于是。前言:CSP 已经结束几天了,也算是逐渐冷静下来了,写下的这篇反思或许有一定的参考价值吧。若是早些时候,我除了“这么傻逼的题为什么做不出来”这样无意义的牢骚外什么也写不出来。赛程经历:(如实记录,分析在后面)考前:就这样吧。试机:开汽水,然后喷了一桌。(现在看来是个伏笔)先研究了一下网页版的 Linux,没花多少时间。然后随便打了一个快读快输模板,又顺手写了一棵线段树。但其实两个后来都没有用到(读入输出还是直接用的

2021-10-27 22:59:11 122 1

原创 题解 CF30C Shooting Gallery

解题思路:您就叫蓝题啊。考虑 DP。首先将发现,每一个点的价值数值上等于这个点打中的概率。由于每一个点打中的价值为 111 ,这个结论可以用全期望公式简单推导。然后将所有的点按照出现的时间排序,用 fif_ifi​ 表示考虑到第 iii 个点,当前这一个点必须取所能取到的最大价值。其中对于每一个点,如果想要取到另一个点的价值,那么就需要在一定的时间范围内移动到另一个点的位置。显然移动的距离小于两者之间的时间差就能在时间允许的范围内移动到另一个点,从而取到那个点的价值。转移的方程为:fi=max(

2021-10-24 15:48:07 87

原创 题解 CF4D Mysterious Present

解题思路:由题意,首先把所有的没有满足 wi>ww_i>wwi​>w 且 hi>hh_i>hhi​>h 的点删去,显而易见,这一些点是一定用不到的。然后对于整个序列按照 hhh 为第一关键字,www 为第二关键字从小到大排序。也就是在第一维保证单调递增的前提下对第二维用动态规划做一个一般的的最长上升子序列。(这样的一个思路在 cdqcdqcdq 分治处理三维偏序中也有用到,应该算是经典套路了。)题目中还要求记录方案,可以用一个 fromfromfrom 数组记录转

2021-10-06 11:17:33 98

原创 题解 CF486B OR in Matrix

解题思路:考虑先根据 bbb 的必要条件构造出一组可能的解然后再根据这一个构造出的判断是否可行。由于每一个 bbb 中一旦有 000,那么 aaa 中所有的与这个元素同行或者同列的元素都必须为 000,否则一旦出现 111 就一定不可能在这个位置出现 0。根据这个性质,不妨先将 aaa 数组全都变为 111,一旦遇到上述情况就将 aaa 中与之同行、列的所有元素变为 000。但这样随之带来一个问题,就是可能出现变为 000 的元素过多导致 bbb 某一些应该出现 111 的位置变为了 000,所以

2021-10-06 11:17:01 83

原创 NOIP 2018 笔试 T17 的分形相关

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar

2021-10-05 21:51:35 89

原创 题解 P1311 [NOIP2011 提高组] 选择客栈

很经典的题目,写了玩玩。题目分析:对于每一个客栈,都可以和之前的某一些客栈搭配,这一类客栈需要满足的条件有两个:颜色相同,中间(包括自身)有至少一个消费小于 ppp 的咖啡店。此外,发现颜色数很少,只有 505050,那就考虑维护一个指针记录下最后的一个消费小于 ppp 的咖啡店的位置,然后维护在那个之前每种颜色的客栈有多少个,每考虑一个新的客栈,将答案加上再最后一个咖啡店之前的颜色相同的客栈的数量即可。需要注意的是,当每一次加入新的客栈时,当前的一个客栈不是合法的,所以要减一。代码:#in

2021-10-05 21:50:56 222

原创 题解 P1196 [NOI2002] 银河英雄传说

题目分析:带权并查集板子题,之前没有见过。本题需要维护两个值,一个是是否联通,还有一个是每一艘船到当前队头的距离。考虑在一般并查集的基础上额外维护两个值,一个是到队头的距离,另一个是当前整个队伍的长度,后者用来在合并时计算前者的。更具体的:合并时,将放在后面的队头的队头距离加上放在前面的队伍的长度并将两个队伍的长度合并。查询的时候,记录下原来父节点的值,然后查询父节点,在路径压缩的时把自己到队头的距离加上父节点到队头的距离并更新所在的队伍长度。关于最后一条的顺序问题,这是因为可能有多条路径等待

2021-10-05 21:50:17 260 1

原创 题解 P1246

有点坑的一道组合题。解题思路:首先对于每一个字符串,长度比其小的一定比其小,这一块的总贡献是 ∑i−1len−1C26i\sum_{i-1}^{len-1}C_{26}^i∑i−1len−1​C26i​。然后是长度相等的,当确定前 iii 位相等,当前位(也就是 i+1i+1i+1 位,这里与程序实现有所不同)的字符为 jjj (转26进制,同样与程序实现不同)时,产生的方案贡献为 C26−j−1len−i−1C_{26-j-1}^{len-i-1}C26−j−1len−i−1​,这里需要枚举累加。

2021-10-04 16:02:01 118 5

原创 题解 P4973 毒瘤之神奇进制 题解

初学对数的好题。前置知识:对数首先我们要知道对数是什么。若 ax=ba^x=bax=b 则称x=log⁡abx = \log_abx=loga​b。下面介绍几个常用的公式:log⁡ab=log⁡cblog⁡ca\log_ab = \dfrac{\log_cb}{\log_ca}loga​b=logc​alogc​b​log⁡ab∗c=log⁡ab+log⁡ac\log_ab*c = \log_ab+\log_acloga​b∗c=loga​b+loga​clog⁡anbm=mn∗

2021-10-03 19:03:15 92 3

原创 题解 P1574 超级数

解题思路:超级数什么的,其实就是反素数,这两者的定义是一模一样的,所以下面直接介绍反素数。首先,大家应该都知道素因子分解(看到紫题还点进来的一般都会吧 QwQQwQQwQ )。即: num=p1k1×p2k2×p3k3×...×pnknnum=p1^{k1}\times p2^{k2} \times p3^{k3}\times ... \times pn^{kn}num=p1k1×p2k2×p3k3×...×pnkn 其中 p 是素数, k 是指数。那么考虑一般的求反素数方法,就是对于一个范围内数,.

2021-10-03 19:02:34 183 3

原创 题解 P4596 [COCI2011-2012#5] RAZBIBRIGA

坑点有点多的暴力题。解题思路:观察本题,可以发现其实所有的首尾相同的单词都是“等价的”,在本题的要求中,其实并不在乎中间的字母。由此想到可以用一个二维桶来记录所有“相同的”单词,然后枚举四个顶点的单词并往里面填。时间复杂度为 O(1)O(1)O(1) ,是常数级的,这一点另一篇题解写得有些问题。正如开头所说,这题有很多坑点,现列举如下:读词的顺序原文中是这样说的: 水平单词只能从左往右读,竖直的单词只能从上往下读。四个角共用一个字母。 这就意味着在代码中必须严格数组的顺序。

2021-10-03 19:01:59 134

原创 题解 P3655 不成熟的梦想家 (未熟DREAMER)

题解 P3655 不成熟的梦想家 (未熟DREAMER)解题思路:观察题目中给出的算式可以发现,对于一个区间中的若干点,无论怎样加减,都不会改变整体贡献:可以设加上(减去)的数为 kkk,则对于区间中连续被加(减)到的 A[i]A[i]A[i] 和 A[i−1]A[i-1]A[i−1] ,其结果为 A[i]+kA[i] + kA[i]+k , 和 A[i−1]+kA[i-1] + kA[i−1]+k ,其中 A[i],A[i−1]A[i],A[i-1]A[i],A[i−1] 的相对大小关系没

2021-10-03 18:56:19 195 3

空空如也

空空如也

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

TA关注的人

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