
记录
文章平均质量分 70
Hanoist
新高二阅读理解竞赛人
展开
-
2022.3.24 赛后总结
赛时复盘总体上这场考试过程比较顺畅,没有前段时间ybt 14连战的时候有几天那种看了20分钟题就窒息的感觉。T1构造,T2看题+数据范围 10610^6106 明显SA,T3本质不同子序列,一开始看成本质不同子串了,以为这一天一道SA一道SAM。另外我一开始看到多组询问看到临时插入就开始想什么可持久化平衡树,现在看来真的是学愚了(笑)。大致策略就出来了:直接研究T1,然后研究一下T2,争取哈希二分搞一个60~72分(SA太久没写了,加之前面要做构造后面要看SAM,所以一开始就放弃了用SA),T3再重新原创 2022-03-24 16:29:49 · 465 阅读 · 0 评论 -
9.4 模拟赛记录
9.4 模拟赛记录复盘惯例开局遍历。看到T1,上来就是一盆凉水:p1=1 ^ i < n是啥东西?第一反应是第一位是1异或i,但是一看样例好像不太对,难道第一位是1?那排列的条件是干啥用的?抱着谨慎的态度,决定先不思考这题,接着看T2.T2就可做了,O(n2m)的暴力算法很显然,但是有很多可以优化的地方。T3没有看懂任何完整的一行,直接从脑子里面弃掉。T4题意说的模棱两可,显然一次操作应该就是1~n,但是1 ~n难道不是0次?这操作到底是什么,反复插入队?想了15分钟仍然没想明白。考虑到这原创 2021-09-04 17:59:49 · 90 阅读 · 0 评论 -
8.18 模拟赛记录
8.18 模拟赛记录复盘今天考的是构造,一开始觉得构造无非就是找一组解,和一般的问题也没啥不同,可以当综合打了。惯例开局遍历,T1打表难打,基本不可做;T2k=1好写,别的比较复杂;T3并查集但又不完全并查集,说不上是什么东西;T4好像就是某种策略模拟。总之就是暴力完全无从下手的感觉。由此,今天的策略还是莽一点,从T4开始做。T4的策略基本就是先往中间凑,再去凑2k.我经过一些简单的感性理解认为没有无解的情况,所以第一步先把大的转移给小的,第二步奇数之间互相转移,第三步非2k互相转移凑,最后合并多原创 2021-08-19 00:35:03 · 131 阅读 · 0 评论 -
8.17 模拟赛记录 & 数论知识点补充
8.17 模拟赛记录 & 知识点补充不得不说,数论重构确实快复盘u1s1,考数论多少有一点担心,毕竟数论万一考一些非常阴间的同余方程期望组合数学之类基本连个暴力都写不出来,但是总归问题不大,考他就完了,实在不行可以像昨天一样冲正解233开局遍历,T1显然有某种规律,经过一番推导,发现每一个数x在下一次计数产生的贡献都是(x+1)+x+…+2,以此类推。经过一系列纠结和优化,最终优化到了O(n2).觉得还可以优化,时间还够,先放一放。T2是一个几何问题,打眼一看没什么思路,20分的暴力非常原创 2021-08-18 00:01:27 · 151 阅读 · 1 评论 -
8.16 模拟赛记录 & 树上问题知识点补充
8.16 模拟赛记录复盘从看到题的第一刻起,我就认为我爆零几乎是不可避免的了,T1T2T3T4全都是正解看不出来暴力又难写。经过遍历,认为T4的暴力环30分最好写,写了。然后去写T2两个特殊限制,一个暴搜一个换根dp,写到一半打了个疫苗花了1小时,回来就剩一小时了,另两道题实在没头绪,打疫苗的时候想T3线段树维护又没想明白,于是决定拼一把去研究T2正解,每一次都能得到一些好的思路,但是又都离解出题差一点,最终也没写出来,交了之前写的特殊限制。以及特殊限制并没有调试过,感觉可能得不到分了。预计:0+0原创 2021-08-16 23:39:01 · 92 阅读 · 0 评论 -
8.15 模拟赛记录 & 图论知识点补充
8.15 模拟赛记录 & 图论知识点补充不得不感慨,写了好多天的总结,今天终于可以不用在写日期的时候自动-=1了(捂脸)复盘上来遍历。T1首先想到了前两个字符作为一个元素和后两个字符匹配的思路,大概要上个哈希,然后写个暴搜,但是不好实现。T2第一眼以为是缩点,不知道咋从一个大的强连通分量里面割出一个小的,于是跳过。T3看了看比较复杂,估计要把询问离线,但是没想明白这样做的时间复杂度,但是突然想到或许可以用Floyd暴力比较容易的得到一些分(这是受了前天的启发),可以从这题开始做。T4第一原创 2021-08-16 00:22:17 · 148 阅读 · 0 评论 -
8.14 模拟赛记录
8.14 模拟赛记录字符串学的实在不好,今天的题搞明白的太少了,干脆不写题解了,回头一起补。复盘考字符串,基本上最有把握的就是字典树,KMP比较容易写错,哈希有很多时候看不出来怎么用,所以一上来就先看哪些题可以字典树解。T1一开始考虑KMP,但是求的是多组的前后缀,用不了KMP,字典树确实可以,正着反着各踹 trie一遍,然后通过判断一个点是否有多个子节点来判断哪一段存在同样的前缀后缀对。说的容易,但是我的解法比较复杂,调了相当久,大约到十点才把这题做出来(中途因为闹肚子上了相当长时间的厕所)。原创 2021-08-15 01:19:46 · 135 阅读 · 0 评论 -
8.13 模拟赛记录
8.13 模拟赛记录本日记录含大量总结。复盘开局遍历,T1分治显然,T2二分答案但不好做,50分小根堆暴力显然,T3倍增但没啥别的思路,T4只能整20分暴力。首先我认为最没发展前景的就是T4,花15分钟推完规律写上,直接关掉cpp。然后就是T1,很显然是分治,每次把寻找的范围缩小4倍,搜到2x2之后考虑一下这个图形的形状(有4种),根据形状输出结果。说着轻松,但是实现过程确实比我想象的更困难,花了相当大功夫去想,终于是找到了规律,抱着切题的希望把这题认认真真做了。整完基本就大约10:10了。原创 2021-08-14 02:37:51 · 218 阅读 · 0 评论 -
8.12 模拟赛记录
8.12 模拟赛记录复盘今天这比赛真的给我打破防了。惯例开局遍历,看完了4道题,认为只有两个选择:1 把T1这道我从没练过的数位DP强行做了2 洗洗睡T1数位DP学过但没练过,T2是期望+DP,需要算期望,当时考场上看到求概率有点蒙,就向后看了,T3好像可以DP但是想了一顿只能想到暴搜(而且我当时不知道为啥没看到n<=10有30分),T4完全想不到做法。综上所述,基本上也就T1勉强能做。在反复思考了T3而仍然得不到DP方法之后,我直接花了两个半小时多写T1,但是显然我的悟性不够,有一个样原创 2021-08-13 01:53:50 · 84 阅读 · 0 评论 -
8.11 模拟赛记录
8.11 模拟赛记录复盘惯例开局遍历。T1简单的我有点不敢想象,把一个数移到前面,等同于在前面复制一遍这个数,并忽略掉后面那个。为了方便,翻转这个序列,每次把要移的数移动到最后。移动都结束后,从后往前遍历,每一种数取最靠后出现的输出。时间复杂度O(m+n),完全能过。考虑到T1如此简单,不如拿来当缓冲,于是先往下看。T2好像是小根堆,但是维护策略想不出来,先放弃。T3看到两个特殊限制,一个并查集可以解决,另一个倍增LCA,但是不太好写。T4第一反应二维树状数组前缀和暴力,但是二维树状数组我不熟悉,也原创 2021-08-12 01:47:22 · 104 阅读 · 0 评论 -
8.10 模拟赛记录
8.10 模拟赛纪录复盘开考仍然是8:30.老规矩,上来遍历一遍,直接想出了T1一种可行的方案,T2没啥头绪,T3略有些复杂不好想,T4只能想到暴力求逆序对。上来轻松加愉快解决掉T1,大约也就9:30.很明显,对于一个集合的点,我们连接其中所有的点或者n/2个点,这样一来可以排一下应该取哪些边,取的边就是最小值。觉得T3比较可做,思考了很长时间,大约一直到10:00也没想出严谨的解,连20%特殊数据都很难解决,由于时间安排,于是写了一个不太严谨的解法。T4求逆序对,树状数组不太熟悉,选择线段树代原创 2021-08-11 01:06:21 · 82 阅读 · 0 评论 -
8.09 模拟赛记录
假期来了,天天“开心赛”的日子也来了。复盘到机房的时候是8:30,3个半小时,看了眼大标题,是大考的模拟,而且还是专题练习,觉得时间上应该是很标准的(直到考完我才知道默认的考试时间是4个小时,而什么初赛复赛考试时长好像都是4个半小时……)。老套路,直接把四道题遍历一遍。这模拟是“搜索和枚举”的专题,肯定4道题都会考察到这个知识点,然而看到T1的时候满脑子想不到搜索和枚举,而只能想到打表二字。我认为这题打表确实能打到50分,但是分类讨论很多,很耗精力,不太好写。联想到去年初赛某大模拟,于是看T2..原创 2021-08-10 03:07:23 · 168 阅读 · 0 评论 -
6.15 记录
有史以来做过最难的黄题。(以下是心路历程,非本校OIer建议跳过) 奇妙的心路历程题解奇妙的心路历程这个题上来先评估一下,增删应该属于同种操作,应该是AB长度不同的时候增删,否则修改,毕竟修改=一删一增,1<2是显然的。所以先修改,改成LCS,然后增删。但是很快就被卡掉了:ABCDE BCDEF res = 2这题就是一增一删<改。那能不能把长的打印一份找LCS?显然不能,把这个AF插到中间就卡掉了。所以有两种策略:一是先改LCS后增删,二是在LCS基础上增删。这时候作为一个合格原创 2021-06-15 20:35:52 · 86 阅读 · 0 评论 -
6.8 模拟赛记录
6.8 模拟赛记录这回的题还是很有意思的。T1一般的背包,切了。T2首先能看出来是一个类似多重背包的东西:花钱买魔法书,不同等级价值不同,花费倍增。一种书的不同等级只能买一本,求最大价值。一开始先考虑能不能合成01,认为可以,于是写完了。写完了才品出来不大对劲,合成不了,于是把合成拆了;拆完发现还是不行,就得正常写多重的思路,而且挂不了二进制优化。结果多重的模版不熟悉(学会二进制优化简单的就不会了,怀念同样命运的递推n2LIS和冒泡排序),两维写反了,发现之后一时间居然不知道怎么改(?),于是浪费原创 2021-06-10 19:23:55 · 75 阅读 · 0 评论 -
各种小知识点和易错点收集整理
1 方差公式推导方差=平方和/n - 平均数 * 平均数原创 2021-05-16 12:55:25 · 161 阅读 · 0 评论 -
4.29 记录 机器分配
(题目来源 洛谷 P2066)这题基本上来讲DP没什么很大的难度。记dp[i][j]表示前i个公司分j台机器会得到的最大利润,那么就有:dp[i][j] = max(dp[i][j],dp[i][j - k] + a[i][k]) (0 <= k <= j).这题小难点还是在输出这个分配方案上。根据我们已有的经验,首先我们必须准确的知道到底是何种方案是最佳的,并且存储这个状态;其次我们要把推出方案的路径存起来。加上一个b[i][j],表示前i个公司用了j台机器获得总利润最大时,前(i-原创 2021-04-29 20:39:00 · 71 阅读 · 0 评论 -
4.20记录 如何把DP变成TOPO
Topo的基本应用T1 偷地雷 挖地雷(P2196)T2 最短路径(建议直接把“径”去了)这两道题基本上就是拓扑排序板子级别的题。值得一提的是第一题,第一题是点权转化为边权,如果我们采取一路走到底,直到出度为零的点再更新结果,那么对于无路可走的问题,会认为价值为0.这时候则应该选一个价值最大的点作为结果。鉴于两道题很近似,放一个更有意思的T1:#include<cstdio>#include<cstring>#include<algorithm>#inc原创 2021-04-22 19:53:17 · 101 阅读 · 0 评论 -
4.17记录 LIS其二
4.17记录 LIS其二输出最终结果的LIS。思路相比传统的LIS来讲,一是原来的队列二分不那么好用了(队列模拟最终得出来的那个所谓LIS实际并不是真实的情况),二是需要加一点东西来存这个队列,也就是链表。建议熟读并背诵。#include<cstdio>#include<cstring>#include<algorithm>using namespace std;int head[100001],a[100001];void find(int x){原创 2021-04-17 16:45:12 · 84 阅读 · 0 评论 -
4.8记录 迷宫问题
题目:给定一个含0和-1的迷宫,其中0可以通过而-1不能。输出任意一种路径。这题有DFS和BFS两种方式。DFS很容易:如果回溯了,则一定是遇到了死路,那么之前回溯过的部分都可以被覆盖掉,而且同一步只会走到唯一的坐标上(否则一定回溯了),因此只要开一个res[i]数组表示第i步到达的坐标就可以了。BFS一步会走至多4个点,因此我们可以参考链式前向星的存图方式,用一个数组pre[i][j]表示到达点(i,j)的点(到达某点的点是唯一的)。这样我们再递归的输出就可以了。代码如下(附赠样例一组):#in原创 2021-04-08 20:58:14 · 91 阅读 · 1 评论 -
3.30记录 分治测试
3.30记录 分治测试前排吐槽一句,其实今天的测试有一些题我真的没有看出哪里在分治,但是我觉得还是我对“分治”这个词理解有误,分治并不等于二分三分,而是把一个东西分成几部分思考就算是分治。这样一来,其实分治并不能说是什么算法,更像是一种思考方式。总结一下今天的考试,由于样例有点小问题而跳过了T2,一个标准的快速幂搞定了T3(没错,我确实忘了其实快速幂也是一种分治,要不是IOI赛制我可能根本就不敢交上去),调通了T4,最后做了T2,看出规律却不太会实现,于是自己搞了一搞之后周游列国解决掉了,发现还是自己原创 2021-03-30 21:02:23 · 76 阅读 · 1 评论 -
图论:最短路(上)
DAY6-8学习报告 图论:最短路(上)DAY6-10的集训内容按照原来的进度应该还是像之前一样一天一更新,但是由于图论对于我上手难度相当大(尤其图论是我学竞赛第一个大量学板子的东西),因此等到复习提高了之后再来写。一篇两篇博客都不可能研究通最短路的内涵,YBT参考书的题解写法实在过于灵活,我这种停留在套板子阶段的选手显然是参不透的(也许以后会写一篇博客专门发阅读理解,捂脸)。主要还是对目前所学的一些内容作一个整理总结,尤其是一些细节上的探讨。一.基础:从板子到细节探讨最短路分为单源最短路和多源最原创 2021-03-20 17:23:48 · 134 阅读 · 0 评论 -
3.20记录 坐标DP
(原题 洛谷P1006)这题是一个矩阵中的DP,可以用区间DP解决。区间DP其实就是多个点汇入一个点的操作,整体思路如下:dp0 = max(dp1,dp2,dp3,…)+ 决策这题最简单粗暴的办法就是,既然我们一个点(i,j)不能过两次,那干脆开一个四维的dp[i][j][k][l],只要i=k && j=l就直接认为这个四维的点不可通过就行了。(当然了,多次经过(m,n)是不可避免的,所以这地方要特判)代码如下:#include<cstdio>#include&原创 2021-03-20 17:00:49 · 291 阅读 · 0 评论 -
3.16记录 分段DP
”知识是第一位的。“(原题P1388)我没有自己实现一遍这道题的完整情况,因为这题他是真的有bug,我们研究到8:30我才刚刚能看得懂题解到底说了啥(感谢学哥)。关键还是在于理解这种处理的思路。首先正常来讲此题是一个分段DP,我们暂且不考虑0可能带来的影响。根据(a+b)* c >= a+b*c <=> c >= 1,没有0的时候整个序列都是先把这串数合成(k+1)个段然后再相乘。说白了,能乘则乘。那么思路就出来了:设前i个数用j个乘号得出的最大值为dp[i][j],每一个原创 2021-03-16 21:05:23 · 128 阅读 · 0 评论 -
3.13记录 区间DP(2) 喷漆
3.13记录 喷漆#include<cstdio>#include<cstring>#include<algorithm>using namespace std;int n,dp[101][101];char s[101];int dfs(int l,int r){ int i; if(l == r) return dp[l][r] = 1; if(~dp[l][r]) return dp[l][r]; dp[l][r] = 2e9; for(i原创 2021-03-13 16:50:19 · 85 阅读 · 0 评论 -
3.11记录 区间DP
3.11记录 区间DP:乘法游戏基本上是个区间DP的板子。#include<cstdio>#include<cstring>#include<algorithm>using namespace std;long long a[101],dp[101][101],n;long long dfs(int l,int r){ int i; if(r - l <= 1) return 0; if(dp[l][r] != -1) return dp[原创 2021-03-11 19:59:33 · 74 阅读 · 0 评论 -
解一元三次方程方程问题细节探讨
解一元三次方程虽然我是一个新手,按”规矩“应该要经常在博客里面把自己的错误都写出来做个总结,但是我比较保守,总是觉得博客是一个社交平台,一些相对不太成熟的东西还是写个word文档自己存起来好,在博客里面发出来的都是一些比较有感悟、用心搞过的东西(虽然可能还是不成熟的)。总而言之,用心创作,如有错漏,请多见谅、多指正。前排放一下试错的过程:(其实我还拿洛谷试验了几次)这道题之所以试验了这么多次(都是掩饰,倒不如说是WA了这么多次),就是因为反复试了很多细节。所以说,dalao们觉得平平无奇、不言自明原创 2021-01-22 22:30:10 · 339 阅读 · 1 评论 -
3.9记录:LCS变LIS
LCS变LIS:O(nlogn)优化原题:洛谷P1439,对于nlogn的LIS写法请移步P3902。#include<cstdio>#include<cstring>#include<algorithm>using namespace std;int temp[100001],a[100001],b[100001],c[100001];int find(int l,int r,int v){ while(l < r){ int mid =原创 2021-03-09 20:44:43 · 198 阅读 · 0 评论