摘要: 比赛那会过了两道题,哇贼激动,然后后面就没有然后了。。。 1003我想到用$kmp$,于是不会$kmp$的我开始找板子套,结果$TLE$,就觉得应该是优化不行,优化后AC妥妥$TLE$,就放弃了。 钓鱼也没调上来,找规律的位运算也没整出来,赛后看题解发现我们队过的三个题都是签到题,都不带解释下的,钓 阅读全文
posted @ 2019-08-24 21:56 sparkyen 阅读(366) 评论(0) 推荐(0) 编辑
摘要: >传送门< 题意:现在需要捕$n$条鱼并且将它们煮熟来吃。每条鱼要煮相应的时间才能吃(可以多煮一会),锅里每次只能煮一条鱼,捕一条鱼的时间是相同的,但是在捕鱼的时间内不能做其他事(比如换一条鱼煮),求把所有的鱼都煮熟最少需要多少时间。思路:这里提供一种比较好理解的想法,来自$yx$学长 你想一下,我 阅读全文
posted @ 2019-08-24 20:13 sparkyen 阅读(336) 评论(1) 推荐(0) 编辑
摘要: 前言 纪念一下我做的第二道斜率优化$dp$题,终于自己能把代码敲出来了,然而有很智障的$bug$,把$i$写成$q[i]$,找了半天QAQ。然后写$dp$公式并优化的能力稍微强了一点(自我感觉良好),对于斜率优化$dp$"去尾"的操作理解更深刻了 描述 $1∼N$号工厂,第$i$个工厂有$P_{i} 阅读全文
posted @ 2019-08-23 11:54 sparkyen 阅读(175) 评论(0) 推荐(0) 编辑
摘要: 前言 这是我写的第一道$dp$斜率优化的题目,$dp$一直都很菜,而且咖啡鸡都说了这是基础的东西,然而看别人对$dp$斜率优化一大堆公式又看不懂就老老实实做几道题目,这个比较实在 描述 给出$n$和$l$.有$n$个玩具,第$i$个玩具的长度是$c[i]$,要求将玩具分成若干段,从$i$到$j$分为 阅读全文
posted @ 2019-08-21 21:05 sparkyen 阅读(148) 评论(0) 推荐(0) 编辑
摘要: >传送门< 前言 跟学知识一样,做题目的确是也是常做常新。这道题当时的确已经解决了,国庆前工作室学长还有其他人又提起这道题,我说不就暴力枚举贪心么,后来学长说那你不好证明贪心的正确性!我一想的确是这样的,基本上没有人讲这怎么三次贪心选取就可以了,有点像瞎搞的样子。于是就又去看了$multiset$的 阅读全文
posted @ 2019-08-19 15:25 sparkyen 阅读(192) 评论(0) 推荐(0) 编辑
摘要: >传送门< 题意:S(1)="COFFEE",S(2)="CHICKEN" ,S(n) = S(n−2)+S(n−1),请输出 S(n) 中从第 k 个字符开始的10个字符(若不足10个输出到末尾即可),(1≤n≤500,1≤k≤min(|S(n)|,1012) 思路:那会好多人过了这题,就尝试去写 阅读全文
posted @ 2019-08-19 13:01 sparkyen 阅读(324) 评论(0) 推荐(1) 编辑
摘要: 有这样的一个问题: 给定一个集合,让你输出所有的子集。 这时候二进制就派上了用场~ 我们用0,1来表示当前位是否被保留,值为1则保留,为0则舍弃 ,如下图所示: 那么对于一个有n个数的集合来讲,每一位有取和不取两种状态,一共就有2n种状态,我们可以从0一直枚举到2n来表示所有子集的状态。 但是现在问 阅读全文
posted @ 2019-08-16 17:40 sparkyen 阅读(660) 评论(0) 推荐(0) 编辑
摘要: >传送门<题意:给你一个有n个元素的数组,一个sum,让你找到数组的子集使得子集元素和等于sum,保证只有一个解决方案。 (其中1≤n≤36,0≤ sum<9*1018,0<ai<2*1017) 思路:写这题的时候队友直接搜子集,然后我就满脸???236,老哥你确定不会爆?于是天真的我发现和背包不是 阅读全文
posted @ 2019-08-16 17:33 sparkyen 阅读(184) 评论(0) 推荐(0) 编辑
摘要: >传送门< 题意:最初有 n个人且互不认识,接下来 m行,每行有 x,y表示x和y交朋友,朋友关系满足自反性和传递性,每次输出当前选取4个人且互不认识的方案数。 思路:比赛的时候知道是用并查集做,然而也只是知道,具体的思维还没有想到这一块,还是太菜了,得去多做多想~ 并查集合并操作可以理解为使得两个 阅读全文
posted @ 2019-08-16 15:27 sparkyen 阅读(219) 评论(0) 推荐(0) 编辑
摘要: 现在有个问题需要我们去解决,这个问题是这样的: 有一个字符串,这个字符串的首尾是连在一起的,要求寻找一个位置,使得以该位置为起点的字符串的字典序在所有的字符串中最小。 最最暴力的做法就是用O(n)的时间枚举起始位置,O(n)的时间比对字符串的字典序,总的时间复杂度是O(n2),别想了,这种做法肯定不 阅读全文
posted @ 2019-08-14 17:52 sparkyen 阅读(353) 评论(0) 推荐(0) 编辑
摘要: Contest Info Practice Link SolvedABCDEFGHIJK 4/11 Ø O O O O 在比赛中通过(O为自己,O为队友) Ø 赛后通过 ! 尝试了但是失败了 空白 表示没有尝试 Solutions A. All-one Matrices 点这里>_< B. Beau 阅读全文
posted @ 2019-08-14 11:13 sparkyen 阅读(200) 评论(0) 推荐(0) 编辑
摘要: >传送门< 题意:统计区间 [a,b] 中不含 4 和 62 的数字有多少个。 思路:数位dp 就是数位上不能有4也不能有连续的62,没有4的话在枚举的时候判断一下,不枚举4就可以保证状态合法了,所以这个约束没有记忆化的必要,而对于62的话,涉及到两位,当前一位是6或者不是6这两种不同情况我计数是不 阅读全文
posted @ 2019-08-13 22:02 sparkyen 阅读(240) 评论(0) 推荐(0) 编辑
摘要: 最近遇到了数位dp题目,于是就屁颠屁颠的跑过来学习数位dp了~ “在信息学竞赛中,有这样一类问题:求给定区间中,满足给定条件的某个D 进制数或此类数的数量。所求的限定条件往往与数位有关,例如数位之和、指定数码个数、数的大小顺序分组等等。题目给定的区间往往很大,无法采用朴素的方法求解。此时,我们就需要 阅读全文
posted @ 2019-08-13 21:29 sparkyen 阅读(264) 评论(0) 推荐(0) 编辑
摘要: >传送门<题意:对于一个有n位(这n位从高位到低位分别是An,An-1,An-2 ... A2,A1)的十进制数,我们定义它的权值F(x)=An*2n-1 + An-1*2n-2 + ... + A2*2 + A1*1.现在给你两个数A,B,请计算[0,B]范围内有多少个权值<=F(A)的数 思路: 阅读全文
posted @ 2019-08-13 20:32 sparkyen 阅读(265) 评论(0) 推荐(0) 编辑
摘要: set是STL 中一种标准关联容器。它底层使用平衡的搜索树——红黑树实现,插入删除操作时仅仅需要指针操作节点即可完成,不涉及到内存移动和拷贝,所以效率比较高。 set,顾名思义是 “集合” 的意思,在 set 中元素都是唯一的,而且默认情况下会对元素自动进行升序排列,支持集合的交 (set_inte 阅读全文
posted @ 2019-08-13 10:11 sparkyen 阅读(874) 评论(0) 推荐(0) 编辑