11 2018 档案

摘要:NOIP2018,本以为是最有希望的一年,没想到是最翻车的一年! 说多了都是泪555555 考前记 Day Unknown(反正是考试前) 超级弱市CZ在10月13日在我们学校考了一次并不为人知的初赛。 所以从初赛后,每个晚上我就来机房准备复赛。 1. 初赛考完,我就跟班主说我不做作业啦,晚上不在教 阅读全文
posted @ 2018-11-21 18:20 Garen-Wang 阅读(307) 评论(0) 推荐(0)
摘要:一道又简单又难的BFS题 这道题是个人看上去就知道要BFS。 随手写了个BFS,算样例的答案是7? ~~翻题解~~发现: 障碍点不能跳过 ! 改过来,终于是12了。交上去,MLE! 显然会有很多状态是重复的,我们可以开一个三维的布尔数组来判重,很傻瓜的操作。 应该改完了,交上去,还有TLE? 哦,我 阅读全文
posted @ 2018-11-09 11:37 Garen-Wang 阅读(266) 评论(0) 推荐(0)
摘要:无向图求割点和桥的总结 没错,还是要用到tarjan算法。 无向图的tarjan算法需要注意:你需要记录你的前驱节点是什么。 因为tarjan求的就是一个dfs树,一棵树怎么可以有回去的边呢?所以碰到返祖的边就要忽略掉。 求割点 一个点是割点,有且仅有两种情况: 1. 若点是dfs树的根节点,那么当 阅读全文
posted @ 2018-11-09 11:28 Garen-Wang 阅读(160) 评论(0) 推荐(0)
摘要:毒瘤大模拟题! 看到这种又是字符串又是模拟的题目就很伤,很多的地方都考验细节。 看到这种处理循环的方式是后进先出,自然想到了用栈来模拟。 但是最主要的思路是怎么算复杂度? 其实说白了也简单:一个循环的复杂度 = 这个循环本身的复杂度 + 在里面嵌套的最大的复杂度 这里的每一个循环变量都是不重复的,如 阅读全文
posted @ 2018-11-09 11:15 Garen-Wang 阅读(193) 评论(0) 推荐(0)
摘要:月赛的经典模拟题 模拟水题调到要死,但是还是能1A,还是很爽的。 这道题可以直接用scanf读入一行,用fgets会读入一个 ,我不喜欢。 然后用一个变量从左到右扫一遍。 如果读到了大写字母,那么你现在肯定在读一个元素的名称。判断是否有小写字母,名字完了之后判断是不是有下标数字。 读数字是一件挺频繁 阅读全文
posted @ 2018-11-07 22:11 Garen-Wang 阅读(279) 评论(0) 推荐(0)
摘要:主席树套树状数组的动态区间kth模板题 静态区间的kth就是主席树的独角戏,现在需要支持修改操作,如果只用主席树的话一次会有$O(n\log n)$的修改,直接爆炸。 解决方法是套上一个树状数组。 我们这么理解: 原来树状数组的每一段是一个数字是吧,我们现在的每一段直接变成一颗主席树! 这样的话,按 阅读全文
posted @ 2018-11-07 22:04 Garen-Wang 阅读(191) 评论(0) 推荐(0)
摘要:二进制操作+线段树永久化lazy操作 暴力模拟你可能都会写错哦!因为你二进制操作都可能写错! 让我们先解决这两个所谓的“基本操作”: 前$k$位按位取反 我们操作的思路是先把前$k$位独立分开,然后就对剩下的那$k$位进行单独操作。 如何对一个数取反?用~符号? 注意到一个二进制的结论:负数=正数的 阅读全文
posted @ 2018-11-06 22:10 Garen-Wang 阅读(153) 评论(0) 推荐(0)
摘要:一道可能不太明显的状压dp 为什么说不明显呢?因为可以状压的元素藏到了后面。 题意已经很清晰了:每个点一个颜色,找到一条最短的点数为$k$、恰好经过全部$k$种颜色的路径。你需要求出这条路径的长度。 虽然$n \leq 100$挺大的,但是$k \leq 13$,而我们要走的也只跟$k$有关,所以我 阅读全文
posted @ 2018-11-06 21:58 Garen-Wang 阅读(128) 评论(0) 推荐(0)
摘要:挺水的棋盘dp题目类型 虽然说水,但是我今晚快一个多小时卡在这道题上面。这反映了我对这类dp的不熟悉。 这道题一看上去就知道应该是要dp的,每一步只能走右或走下就已经提示给你要这么转移。 做dp首先想明白怎么定义状态: 设 表示当前走到$i$行$j$列,目前的朝向向右(0)或向下(1)的最大或最小操 阅读全文
posted @ 2018-11-06 21:51 Garen-Wang 阅读(176) 评论(0) 推荐(0)
摘要:显然的数论水题吧 这道题一开始来看的话要看一下,然后就能发现这是个数学问题。 显然要是LCA一定在她的子树内,不然不可能她是LCA。 所以先把特殊情况搞掉:自己跟自己只有1种情况,自己跟子树内其他的节点加上双向共有$2 \times (size[u] 1)$种情况。 剩下来的就是那些两个不同子树内的 阅读全文
posted @ 2018-11-06 21:44 Garen-Wang 阅读(177) 评论(0) 推荐(0)
摘要:模拟退火求最小球覆盖和最小圆覆盖 原本在我的认识中,模拟退火一定要有一个随机化在里面。 但是有些模拟退火,你可以清楚地意识到答案是可以向某个方向逼近的,这个时候就不用随机了。 比如像第一道题POJ 2069,这道题求的就是最小球覆盖。 对于任意的初始点,我们都能算出以当前点作为圆心的覆盖半径是多少。 阅读全文
posted @ 2018-11-06 09:29 Garen-Wang 阅读(112) 评论(0) 推荐(0)
摘要:C++党的福音系列 其实这道题的题意有点乱。我在这里总结一下题意。 一个未知的01串,通过 一次 某种的变换,能够变成转换后的单词(输入的单词)。你的任务是倒推出转换前的单词。 可能有多解,但是正向转换的时候有考虑顺序:操作4(不改变)最优先,否则按操作1、2、3顺序为优先级。 操作2的时候先尝试删 阅读全文
posted @ 2018-11-06 09:22 Garen-Wang 阅读(210) 评论(0) 推荐(0)
摘要:缩点+分层图+最长路 通过这道题,我再次体会到了分层图的强大之处。 首先可以发现,那些属于同一个强连通分量的点是可以直接看成一个点的,因为他们可以互相访问。 那么直接缩点,可以建出一个新图,就得到了一个DAG。 这道题最难的地方就是在于一次逆向行走。 遇到这种题目,我们直接使用分层图解决。 既然只能 阅读全文
posted @ 2018-11-06 09:13 Garen-Wang 阅读(128) 评论(0) 推荐(0)
摘要:部分分分足够的题还要打正解就是折磨了哇! 先看一下这道D2T3的部分分: $n \leq 1000$的部分分,直接暴力模拟即可,因为$q \leq 500$,所以$O(nq)$的模拟是可以过的。30pts到手。 同样$q \leq 500$,但是$n \leq 300000$怎么办?离散化一下,继续 阅读全文
posted @ 2018-11-06 09:07 Garen-Wang 阅读(147) 评论(0) 推荐(0)
摘要:贡献法+组合数学 讲道理一看到辣么小的$n$,我就想到了状压dp。 枚举子集?哦,$O(3^n)$的复杂度。但是我没有注意到$n=20$的时候是过不了的。 接下来我就在想70pts的状压dp要怎么写? 没有清楚定义状态的我连样例2都过不了,只能够手动枚举拿30pts。 ~~所以最简单的月赛也爆炸了~ 阅读全文
posted @ 2018-11-06 08:43 Garen-Wang 阅读(153) 评论(0) 推荐(0)
摘要:纯最短路模板题? 遇到这种题目就想到了BFS,但是状态会不会太多了啊? 我们可以借助NOIP2017PJT3“棋盘”的思想,用SPFA搞掉。 我们同样搞一个 数组, 数组,在队列里面自己搞个结构体或者pair。 然后就可以类似于SPFA那样写出来一个奇怪的程序了。 不知道为什么,我死活会T掉几个点只 阅读全文
posted @ 2018-11-06 08:12 Garen-Wang 阅读(154) 评论(0) 推荐(0)
摘要:肥料掺了金坷垃,一袋能顶两袋撒! 先给出题人点32个赞! 看到这种输入一个数输出一个数的题目就想打表,但是发现$k$辣么大! 所以找规律咯! 不难发现,只有1和2的倍数是满足条件的。 所以题目等价于求$2^{k 1} \bmod 123456789$。 所以直接long long+ksm搞掉。 代码 阅读全文
posted @ 2018-11-06 08:05 Garen-Wang 阅读(163) 评论(0) 推荐(0)
摘要:“信心赛”T1 如果只要求取一个点的话,直接套用蓝书里面的结论:取中位数即可。 但是这里要求$k$个点,怎么办? 可以定义一个函数为一个点的不合理值,那么可以发现这个函数是先下降后上升的。 换句话说:我们已经知道了中位数那里就是峰底,那么剩下的$k 1$个点就在这些点的旁边取即可。 ~~我的思路也是 阅读全文
posted @ 2018-11-06 08:00 Garen-Wang 阅读(275) 评论(0) 推荐(0)
摘要:单调栈模板题 这道题很明显就是让你求最长的向右的都比她小的连续区间长度(不能有中断)。 遇到这种问题我们可以使用单调栈,能够在$O(n)$的时间内求出来。 这是我模拟一下单调栈工作的机制: 可以发现,我们维护的单调栈具有上升的单调性,每次入栈一个新元素就把比她小的元素都搞掉。 其实也不难发现:每个元 阅读全文
posted @ 2018-11-06 07:51 Garen-Wang 阅读(80) 评论(0) 推荐(0)
摘要:终于掌握了两种处理哈希冲突的方法了!特意来总结 哈希是很好的一样东西。~~但是 更好啊~~ By the way, NOIP是可以用 的,需要这么用: 亲测在NOI Linux下面可以编译,所以就ok了哇! 解决哈希冲突的好方法有两种:一种是开放地址法,一种是拉链法。 开放地址法 一句话的思路:自己 阅读全文
posted @ 2018-11-05 22:07 Garen-Wang 阅读(228) 评论(0) 推荐(0)
摘要:神奇的解法(分治) 这道题是亲爱的dhk推荐给我写一写的水题,我TM还写出来了。。。 题意简化:把$n$分成若干份,满足用这若干份能表达出$[1,n]$内任意的整数且没有重复的大于1的,求最小划分的份数。 ~~感觉自己简化得很鸡肋~~ 看上去就想打暴力,但是又好像挺难打的。因为要算出每个数能否被表达 阅读全文
posted @ 2018-11-05 21:52 Garen-Wang 阅读(115) 评论(0) 推荐(0)
摘要:数据结构学傻了吧! 这道题我一看上去:哦,数据结构。 再看上去:哦,分块题啊。 兴致冲冲地敲了个不熟练的分块,直接WA到只剩10pts。 过后很气地打了个暴力,60pts。。。 果然是暴力出奇迹啊! 不服气的我再打了个分块,终于写对了,却只有65pts,因为数据范围还是很大的,根号算法撑不住啦! ~ 阅读全文
posted @ 2018-11-04 22:04 Garen-Wang 阅读(138) 评论(0) 推荐(0)
摘要:去年模拟赛D1T1 ~~杨爷对Fibonacci情有独钟~~ 我乍一看是不知道这棵树有什么规律的。但是看久了就会发现一个点跟她爸编号的差值跟她的颜色有关。 其实原理就在这里了。 颜色代表一个点她是第几轮被生的,那么通过暴力搞一搞就能发现有这么一个事实:一个点跟她爸的下标差等于斐波那契数列的第$(co 阅读全文
posted @ 2018-11-04 21:57 Garen-Wang 阅读(111) 评论(0) 推荐(0)
摘要:根号算法 这道题暴力92pts。。。 所以说暴力出奇迹! 其实用什么哈希都是在做幌子,要你求的就是从$k$位置开始,隔$p$个数的数字加起来的和。 我们考虑用一个二维数组存下来,用$ans[p][k]$表示模数为$p$,余数为$k$的答案。 如果把所有的模数都处理,跟暴力是没有差别的,甚至还会更劣。 阅读全文
posted @ 2018-11-04 21:50 Garen-Wang 阅读(133) 评论(0) 推荐(0)
摘要:曾经吓死我的背包题 一看就知道是背包啊, 但是不是一般的01背包。 但说到底也就5种决策: 1. 不取主件 2. 只取主件,不取任何附件 3. 取主件,取附件1,不取附件2 4. 取主件,取附件2,不取附件1 5. 全都取 按照这5种决策,在她们各自合法的情况下转移即可解决。 代码: 阅读全文
posted @ 2018-11-04 21:12 Garen-Wang 阅读(95) 评论(0) 推荐(0)
摘要:很随意的字符串模拟题 题外话:样例很良心! 这道题就直接看题意做就可以了。不要管其他花里胡哨的话,直接照点去做就可以了。 因为数据范围真的小,所以可以直接用string,甚至可以用stringstream来做! 不知道为什么是TG+难度啊。 代码: cpp include include inclu 阅读全文
posted @ 2018-11-04 21:00 Garen-Wang 阅读(172) 评论(0) 推荐(0)
摘要:dp例题 or 水题 先说下题意吧,题面给的题意我都看不懂: 有$n$本书,每本书有一个页数%a_i%。每个人能写连续的几本书,他们写书的速度可以认为是1页1天。求让$k$个人抄完这$n$本书的最短时间。 PS:$k$个人抄书的时间是其中抄的最慢的人用的时间。 dp的状态非常容易想: 表示前$i$本 阅读全文
posted @ 2018-11-04 20:57 Garen-Wang 阅读(145) 评论(0) 推荐(0)
摘要:次短路模板题吧 题意已经非常裸了:求无向图的1到n次短路。 直接套用最短路(dijkstra)的主要框架。但在这个的基础上添加另外一个数组 。 走到一条边的时候来三个判定: 1. `dist[u] + weight dist[v] && dist[u] + weight include includ 阅读全文
posted @ 2018-11-04 20:50 Garen-Wang 阅读(159) 评论(0) 推荐(0)
摘要:T1爆零系列 这道题是一道纯模拟,用心写一写一定能些出来。 但是T1爆零怎么办啊??? 检查这些东西: 1. 开数组的范围。最大差不多就开一千万的一维数组,最小也一定要比最大数据范围 大至少5以上!!千万不要看错数据范围! (我就崩在这里了) 2. 看清所有的题目条件,特别是所有特意加粗的那些字体! 阅读全文
posted @ 2018-11-04 20:40 Garen-Wang 阅读(174) 评论(0) 推荐(0)
摘要:真正的最短路计数问题 这道题就是传说中的最短路计数问题了。 其实最短路计数就是在最短路算法上面添加两句话就完事了。 一句是在判断有道路与当前最短路一样长的时候,答案会变多。 一句是在更新最短路的时候,答案会变成从那个点开始的最短路。 所以就没有问题了? 这道题不仅有重边,还可能后面给你更小的边! 解 阅读全文
posted @ 2018-11-02 07:47 Garen-Wang 阅读(143) 评论(0) 推荐(0)
摘要:一道假的蓝题,真的假 ~~讲道理我没看题解乱搞的就过了~~ 一看就知道要二分答案啊。 初始化直接对所有的边排下序,贪心地取一号路,用并查集维护一下连通性就能建出生成树。我们要求的其实就是生成树。 方案因为有spj所以乱搞就可以了。我用vector再套pair,排一下第一维就可以了。 代码: 阅读全文
posted @ 2018-11-01 22:10 Garen-Wang 阅读(107) 评论(0) 推荐(0)
摘要:二分答案+dijkstra 这道题有被改编的另一道题:“通往奥格瑞玛的道路”,相信你也做过吧。。。 看到“交的费用中最多的一次最少是多少”,就应该想到二分答案了。 所以我们二分费用,判断最多的费用是一个$mid$的时候可不可以成功到达终点。 如何判断能否成功到达终点? 不要说用SPFA!因为……被卡 阅读全文
posted @ 2018-11-01 22:05 Garen-Wang 阅读(112) 评论(0) 推荐(0)
摘要:线性筛+背包 讲道理这道题在线性筛后就让我们想到暴力的做法,毕竟写了$n \leq 1000$。 其实你要用背包做的。 dp也很显然的,就用一维来表示和不超过$i$的最大的所谓约数和。 为什么是所谓的呢?你约数和是包括自己的。所以在这道题中你要自己把数字本身手工去掉。 当然不是叫你在线性筛的时候弄掉 阅读全文
posted @ 2018-11-01 21:56 Garen-Wang 阅读(212) 评论(0) 推荐(0)
摘要:哈!树剖+线段树的水题! 讲道理前面的那道“月下毛景树”已经把这种化边权为点权的考的淋漓尽致了。 ~~特别在于这些题的码量~~ 我早上就直接打了一遍,然后就美妙地WA了。 下午再随便地打一遍,突然明白了早上错了哪里。 重新摸一遍板子,交上去,A了。。。 把早上那个唯一写错的地方改了,交上去,也A了。 阅读全文
posted @ 2018-11-01 21:52 Garen-Wang 阅读(173) 评论(0) 推荐(0)
摘要:复习历年大模拟题系列 具体的做法框架大家都懂,就是一个card数组存你的牌,然后忽略所有的花色,然后就是一个自带card数组的dfs。 核心做法还是那十个字: 暴力枚顺子,贪心出散牌 顺子什么的用回溯法的框架去解决,三带四带的各种情况也用回溯法的样子去解决,最后的散牌直接出单张或者出对即可。 增强版 阅读全文
posted @ 2018-11-01 21:48 Garen-Wang 阅读(222) 评论(0) 推荐(0)