- 博客(123)
- 收藏
- 关注
原创 【NOIP2017提高组 day2】奶酪
题目题解–很简单,就是n^2建图,bfs一遍就好了,记得开longlong代码#include<iostream>#include<cstdio>#include<cstdlib>#include<cstring>#include<cmath>#include<algorithm>#include&...
2018-09-24 13:38:05
448
原创 【NOIP2017提高组 day1】逛公园
题目题解– 首先要在图上跑一遍最短路是肯定的(spfa或迪杰斯特拉)接着就是怎么算答案了我们可以先建一个反图(方便从终点跑回起点)设f[i][j]:从起点跑到i号节点时,与目前的最短路相差j的长度时的方案数所以说我们怎么从f[i][j]转移到f[a][b]呢(i,a由一条长为w的路径相连)可以推出:j-b=d[a]+w-d[i]即:b=j+d[i]-d[a]-w因为直接递推...
2018-09-24 13:34:57
360
原创 【NOIP2017提高组 day1】时间复杂度
题目题解–是一道恶心的模拟题首先可以用一个栈存正在运行中的循环用isv数组判断变量是否重名要注意不能进入的循环虽然不会影响答案,但是要经过标记后也存入站内(为了判错)还要注意如果一个O(n)的循环如果在一个不能进入的循环内,答案是不会增加的代码#include<iostream>#include<cstdio>#include<cstdli...
2018-09-24 12:59:54
655
原创 【NOIP2017提高组 day1】小凯的疑惑
题目题解–emmm怎么说呢,毕竟是第一题,当然是打表咯哈哈哈哈哈算出来答案是(a*b)-(a+b)虽然不会证能AC就行不是吗代码#include<iostream>#include<cstdio>#include<cstdlib>#include<cstring>#include<cmath>#include...
2018-09-24 12:52:57
557
原创 【NOIP2018模拟赛2018.8.28】plutotree
题目题解–部份分就是最短路嘛就不讲了 正解树上dp,233333 首先要知道我们dp的目的是什么: 对于一条u到v的路径,一共就只有四种情况 1. u和v直接跑lca 2. u跑到最近的叶子,跳到根,再跑到v 3. v跑到最近的叶子,跳到根,再跑到u 4. u和v都跑到最近的叶子,在根相遇 现在我们就发现了,要得到答案,首先要快速的求到每个节点到最近叶子的路径长度和...
2018-08-28 17:14:20
294
原创 【NOIP2018模拟赛2018.8.28】 chance
题目题解–这道题是dp哟,是不是很隐秘 就是因为最后的答案是对k%及其以上的所有情况的概率求和 如果直接dfs肯定会爆 所以可以考虑dp 设f[i][j]:在前i个袋子里取出j个目标球的概率 转移很简单: f[i][j+1]+=f[i-1][j]*p[i]; f[i][j]+=f[i-1][j]*(1-p[i]); n^2时间复杂度剩下的就是怎么快速求出每个袋子...
2018-08-28 17:02:49
300
原创 【NOIP2018模拟赛2018.8.28】video
题目题解–这道题是大水水题目呢,就是一个简单的组合数,简单粗暴代码#include<iostream>#include<cstdio>#include<cstdlib>#include<cstring>#include<cmath>#include<algorithm>using...
2018-08-28 16:48:45
237
原创 NOIP 快乐中山之旅 day5
呵呵呵呵 我果然是蒟蒻 改题都该不动 还要自学大佬已经学过的东西 啧啧啧 而且好像被某位美丽的老师特别关注了 啧啧啧 第一周终于要完了 啧啧啧 不过竟然还有Windows和Linux的评测环境的区别 QAQ...
2018-08-11 07:54:03
186
原创 jzoj 5795 词典
题目题解–这道题我竟然在考场上想出来了正解(笑cry) 这道题不是什么hash,就是一个Trie,可以在每个节点用一个vector存答案,最后查询就是了 但是,当时我vector用太多了,不仅调试慢,而且可能爆空间 所以来优化一下 发现,对于每个节点其实没必要存下所有答案的位置,他为零的区间长度其实只和 当前位置-上次位置-1有关,所以说我们只需要记录上次出现的位置,并且...
2018-08-11 07:44:41
172
原创 jzoj 5794 旅行
题目题解–这道题是啥来着,反正不是图论题就好了(23333) 我们发现最后的答案肯定是某条边的左端点,和某条边的右端点 所以我们直接枚举一下左端点的答案,再利用贪心原则,将r从大到小排序后,满足l<=答案(就是可以走过的边),依次加入并查集中,每次加入后,判断1和n的连通性,如果连通,就知道了一组答案了,r就是加入的边中的最小值 最后取最大值就行(记住要路径压缩) 是...
2018-08-11 07:27:59
218
原创 NOIP 快乐中山之旅 day4
快乐第一题呀,树上dp呀啊 没打过没练过 爆零了呀 啊啊啊啊啊第二题呀,分块呀啊 没学过没看过 暴力了呀 啊啊啊啊啊第三题,权值线段树呀啊 不知道暴力就有90分 绝望了呀 啊啊啊啊啊讲专题,数据结构呀啊 谁说那是易了呀啊 冷漠了呀 啊啊啊啊啊来讨论,A组题解呀啊 你们为什么就只讲1分钟 变态了呀 啊啊啊啊啊呵呵 总之是快乐的一天 啊啊啊啊啊...
2018-08-10 07:37:09
167
原创 jzoj 100036 随机
题目题解–谁知道这道水题O(n^2)暴力有90分,当然是要动脑筋,我就不讲了 谁又知道这道题要用权值线段树维护,来拿最后那十分 (代码量 * 10 == 分数 * 10/9)QAQ首先权值线段树就是把原来存下标的 l 和 r 改成了存数值大小 所以说,左子树一定 &lt; 右子树的值对于这道题呢 我们要维护: 答案(就是相减最小绝对值和长度,取最大值) 最小值 ...
2018-08-10 07:30:03
254
原创 jzoj 100035 区间
题目题解–开始的时候就想到用前缀积优化了,但是由于不能除法取模(p不是质数呀QAQ) 谁知道可以用分块呢? 谁知道又可以用后缀积呢? 反正不是本蒟蒻233333可以把原来的n个数,手动分成大小为k的n/k个区间(可能最后一个代码#include<iostream>#include<cstdio>#include<cstdlib...
2018-08-09 22:23:24
205
原创 jzoj 5788 餐馆
题目题解–本宝看出来了呀,开出是树形dp来了呀,就是没写过,bl了呀(QAQ) 至少明白了树形dp就是从儿子转移到父亲的合并呀 这道题就是设嘛: f[i][j][0] : 以i为树根的子树,花费j分钟,并且回到i节点的最大价值 f[i][j][1] : 以i为树根的子树,花费j分钟,并且不需要回到i节点的最大价值然后转移就有三种情况: 1. 从已经跑过的子树,并回到根...
2018-08-09 22:09:37
162
原创 NOIP 快乐中山之旅 day3
美丽 美丽 白天就是没什么各种红红火火恍恍惚惚 不过最后还是把A组改完了哟(233333333)最要命的是晚上 某为睡觉==拖拉机的大连 真是让我的jz寝室生活 如虎添翼 蓬荜生辉 (笑cry)...
2018-08-09 07:24:33
165
原创 jzoj 5782 城市猎人
题目题解–本来是很难,但是总有优秀的大佬加神牛犇活在这个世界上 首先不用n^2枚举a和b, 某位大佬说: a和b其实就是 1 * (m-i+1),2 * (m-i+1),3 * (m-i+1),4 * (m-i+1)。。。。 (哇,我咋不知道呢QAQ) 那么用并查集建一棵树就好了 树边就是连接他们的 i 然后好像有什么优化?——小树连大树(按秩合并) 最后跑对于每...
2018-08-08 22:24:25
250
原创 jzoj 5781 秘密通道
题目题解–开始一看,这不是走迷宫吗,那就是bfs呀,当然是快乐gg了 谁能想到这是一道图论题呢(反正不是本蒟蒻) 我们把每个空位和上下左右连一条长为1的边 和上下左右的第一堵墙连一条长为与最近的墙的距离的边 然后从起点开始,跑一遍spfa就行了细节问题不一定相同 像找最近的墙时 可以bfs 也可以和我一样找菱形要看代码能力呢代码#inclu...
2018-08-08 21:28:25
352
原创 jzoj 5778 没有硝烟的战争
题目题解–好像有点玄学?这是本蒟蒻做的第一道博弈题耶,没办法,就当是定义记呗 首先对于A,如果B的选择里有必败策略,那A必胜(黑人???) 那就分为相邻两动物是同种还是异种 如果是同种,如果B有必胜策略,A也必胜 如果是异种,如果B有必败策略,A也必胜然后把换拆成链 用后缀和优化一下 再把从i开始看成是先报一个0就好 答案就是f[i][0]那就直接dp啦 啦...
2018-08-08 21:10:23
395
原创 NOIP 快乐中山之旅 day2
呵呵呵呵呵呵呵呵呵 这杂题选讲竟然是省选难度的,你让我这种蒟蒻怎么办 于是就变成了jz大佬选修时间 顺便知道了一位PTY(233333)节奏超级快 ppt看不懂 还是自己刷题吧(QAQ)各种跑路 溜了溜了...
2018-08-07 21:18:58
176
原创 jzoj 5770 可爱精灵宝贝
题目题解–是区间dp(好像dfs加神秘玄学剪枝也能过?) 首先,我们可以发现这个人走过的位置是一个区域,而且区域内部的精灵要么被抓,要么消失了(总之就是与以后的转移没有关系) 所以,状态定义: f[l][r][t] :当这个人走过区间[l,r],且目前在l处,时间为t时的最大分值 注意,l,r的左右位置要根据大小自己判断然后我们又发现,现在这个人只有两种方法:左走或右走...
2018-08-07 11:07:37
211
原创 jzoj 5769.引子
题目题解–一道纯考代码实现的模拟题,2个小时起步(QAQ) 这道题可以分为三个部分: 1. 找到水箱和对应编号(可以通过从数字开始向外找到一个框) 2. 按水管高低,依次找到子水箱(从该水箱底部开始,一层层向上,遇到水管就沿着他一直走到子水箱) 3. dfs(只需要发现对于每个水箱里的水,肯定先会流向水管最低的那个子水箱,dfs就好)不过注意,这水箱有2000多个,数组...
2018-08-07 10:45:05
197
原创 NOIP 快乐中山之旅 day1
哎呦呦 第一天就考试 不过A组还能做,没有垫底(奇迹出现了) 他们自己出的题就是神奇,各种恶心 总结还在写,时间真的好紧呀 QAQ这里食堂多好吃的呢(啦啦啦) 好像同学觉得太甜了?(这里连咸菜都是甜的哈哈哈)竟然是下午洗澡,这寝室又一次震惊了我晚上竟然有专题 笑死我了,搜索还有这些东西!!! 物理,生物都来了,我怀疑学了假信奥2333333gangbalu笑笑...
2018-08-06 22:12:49
150
原创 NOIP 快乐中山之旅 day0
是初来乍到的我打扰了,告辞明天就要打比赛(还被强迫选A组啊QAQ) 虽然已经做好垫底的准备了,还是要努力打呗,说不定就有奇迹出现呢(并不)这里天气不错,没有重庆热 不过旅途确实劳累,地方又偏,还要去采购 现在我腰部以下已经废了。。。 我一定要说,这里宿舍简直,超级,恐怖,无敌,宇宙第一可怕(为我们学校打call) 内心绝望(我太弱啦)不过他们题库的谷歌翻译太好笑了,哈哈哈 ...
2018-08-05 21:56:37
206
原创 【NOIP2013提高组 day2】花匠
题目题解–这道题是dp,但是写错了,还是贪心简单,而且快 仔细观察可以发现两个条件其实意思就是这一排花最后要成波浪状 那我们O(n)跑一遍就好了,就像把目前的花接到序列中去 根据序列目前的上升下降判断长度是否有增加: 如果改变了增减性,ans++ 如果没有改变,目前的这盆花肯定更优,虽然不加长度,但是要更新序列的最后一位(这样后面的花就更有可能改变序列的增减性)代...
2018-07-25 18:30:49
311
原创 【NOIP2013提高组 day2】积木大赛
题目题解–这道题正解是dp或是贪心,本宝用的是模拟,神奇的过了哟 先sort一下从大到小,因为我们可以看成在叠最高的那个时,顺便完成了与它相邻的一些 (具体实现请手打,描述太麻烦啦) 我们这样处理就能快很多,可能是数据不是很强,其实还是蛮快的(虽然没有O(n)快)代码#include<iostream>#include<cstdio>#in...
2018-07-25 18:21:43
313
原创 【NOIP2013提高组 day1】货车运输
题目题解–这道题的目的其实就是求所有路径中最小值的最大值,用贪心的思想,那就要使每条边都尽量大,又要保证连通,这时候就可以找一个最大生成树了 然后就是要查询答案,直接dfs的话太慢了,我们只需要把两个点之间的联通路的最小值找出来,所以可以在求lca的时候求出答案代码#include<iostream>#include<cstdio>#i...
2018-07-25 10:42:54
264
原创 【NOIP2013提高组 day1】火柴排队
题目题解–这道题其实不是看起来这么麻烦的 首先,要使火柴棒之间的距离最小,很容易证明就是根据大小顺序排序过后一一对应的情况 现在我们sort两遍,求出对应关系,再像冒泡一样进行交换就行 但是细心观察可以发现,需要进行交换的次数其实就是逆序对,非常之玄学了对吧 毕竟我们最终的目的是达到有序,需要交换的就是逆序对 就能把代码写出来了代码#include&l...
2018-07-25 10:20:08
537
原创 【NOIP2013提高组 day1】转圈游戏
题目题解–这道题最后的答案很简单就能推出来:(x+10^k*m)mod n 其实就是快速幂了啦代码#include<iostream>#include<cstdio>#include<cstdlib>#include<cstring>#include<cmath>#include<algo...
2018-07-24 17:24:40
304
原创 【NOIP 模拟赛2018 】Reverse
题目题解–这道题看起来很玄学,其实就是贪心啦 我们只需要找到已经满足条件的最长序列,然后再把其他的都改变就行啦 就是求最长不下降子序列 时间复杂度O(nlogn)代码#include<iostream>#include<cstdio>#include<cstdlib>#include<cmath>#inc...
2018-07-16 19:25:55
411
原创 【NOIP2012 提高组 day2】借教室
题目题解–首先,这道题用线段树是可以过得,luogu上最慢的点也才700ms,具体就不说了 主要讲更快的二分加差分的方法 –首先,差分是一种对区间修改的优化,可以把时间复杂度降到只跑一遍 重点是二分,因为对于某个点,如果不满足,那么不满足的点一定是它,或是它的前方的某个点 如果满足,那就一定在后面 其实是单调的 就可以用二分来做代码#include<...
2018-07-15 10:35:11
785
1
原创 【NOIP2012 提高组 day2】同余方程
题目题解–对于ax≡1(mod b) 可以转化成 ax=by+1,即ax-by=1 现在来一个扩欧就能搞定代码#include<iostream>#include<cstdio>#include<cstdlib>#include<cstring>#include<cmath>#include&l...
2018-07-15 10:13:51
318
原创 【NOIP2012 提高组 day1】国王游戏
题目题解–这是一道深深埋藏起来的贪心题 对于如下队列: a0 b0 a1 b1 a2 b2 ans1=max(a0/b1,a0*a1/b2)然而队列也可能是这样的: a0 b0 a2 b2 a1 b1 ans2=max(a0/b2,a0*a2/b1)因为 a0*a1/b2 > a0/b2 , a0*a2/b1 > a0/b1 所以说,要使an...
2018-07-15 10:08:17
274
原创 【NOIP2012 提高组 day1】Vigenère密码
题目 题解–一道简单的模拟题,不用把这么大一个表都打下来,可以发现规律的: m=c-(k-‘a’) || m=c-(k-‘A’) 具体看c的大小写 如果减过头了,就强行搬到z去: c=’z’-(‘a’-c-1) || c=’Z’-(‘A’-c-1) –剩下一点细节问题是字符串都有的坑,自己注意一下啦代码#include<iostream>...
2018-07-15 09:31:01
218
原创 【NOIP 2011 提高组 Day2】观光公交
题目题解–这道题有点难呢,但主要方法是贪心 对于每个站点,其实只有两种情况 1. 人等车 2. 车等人 这样一分析,就发现使用加速器后,真正有作用的是1站点 而且对于一条如下的道路 –1–1–2–1– 给最前面的道路加速,受益的只有前面两个站点 所以说我们可以每次都搜一遍所有站点,用2站点把整条道路分成很多段,再对影响人数最多的那一段的最前面的那条路使用加速器,就能...
2018-07-08 11:12:31
330
原创 【NOIP 2011 提高组 Day2】聪明的质监员
题目题解–这道题吧,就是题目中求Yi的公式很恶心罢了 宝宝来翻译一下,就是在 [Li,Ri] 的区间中,所有满足 wj>W 的矿石的数量 * 他们的价值之和 –这样就简单了,只需要二分查找一下就好(加上前缀和优化) 对于一个mid,发现: 1. 如果Y>S,说明入选的矿石多了,应把mid调大,即L=mid+1 2. 如果Y#include<iostr...
2018-07-08 10:38:54
197
原创 【NOIP 2011 提高组 Day2】计算系数
题目题解–这道题对于知道 二项式定理 的大佬们可是小菜一碟了 不知道的同学们百度一波 还有就是除法取模要用逆元,也百度吧代码#include<iostream>#include<cstdio>#include<cstdlib>#include<cmath>#include<cstring>#i...
2018-07-08 10:25:45
295
原创 【NOIP 2011 提高组 Day1】mayan 游戏
题目题解:–要我说,这道题极其恶趣味,就是dfs加疯狂模拟,大概1个多小时就能打完,但是如果有小错误,可以找2个多小时呢,代码大概150~200行,加油! –下面稍微有一点的优化: 1. 按照题目最优方案顺序找,找到的第一组解,就是最优解(先x从小到大,再是y从小到大,每个先右移) 2. 对于两个相同颜色的图块,交换没有意义 3. 两个左右相邻且不为空的图块,把左边的右移,...
2018-07-08 10:20:58
477
原创 【NOIP 2011 提高组 Day1】选择客栈
题目题解–要我说,这道题是非常之骚气的,首先有很多很多不同的方法,当然,我可是蒟蒻,所以说,我的方法不是最快的,时间复杂度O(nlogn),最快的是O(n)的,虽然我不明白,但是没什么问题,可以过的 –然后是我方法的详解: 首先把相同颜色的旅馆,还有可以小聚的咖啡馆都用vector存下啦,假设如下图: sc[0][ ]={1 , 2 , 4 , 6 , 7} sc[1][ ...
2018-07-08 10:03:15
334
原创 【NOIP 2011 提高组 Day1】铺地毯
题目题解–很简单的一道题,无论是正着搜,还是倒着搜,都不会超时(但倒着肯定更快) 只需要对所求点寻找:覆盖它的编号最大的地毯,就是答案了代码:#include&amp;amp;lt;iostream&amp;amp;gt;#include&amp;amp;lt;cstdio&amp;amp;gt;#include&amp;amp;lt;cstdlib&amp;amp;gt;
2018-07-08 09:30:07
296
原创 【NOIP2008 提高组】火柴棒等式
题目题解–首先,二话不多说,就是疯狂dfs 然后等它慢慢运行,0~25个答案存下来,直接输出就行了 没错,就是标准的打表代码#include<iostream>#include<cstdio>#include<cstdlib>#include<cstring>#include<cmath>#i...
2018-06-18 20:24:53
1250
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅