08 2018 档案

摘要:这个题当时划水,得了二十分,现在来整一整。 这个题用状压来压缩边界线,然后通过记忆化搜索进行dp。我们可以观察到,其实每次转移,就是把一个1向左移一位。最后的状态设为0。 这其中还要有一个变量来记录谁下棋,用maxmin算法,其实就是一步取max,下一步取min,然后就木有了。 ps:a-b剪枝没学 阅读全文
posted @ 2018-08-31 23:04 DukeLv 阅读(238) 评论(1) 推荐(0)
摘要:这个题其实打眼一看就知道差不多是dp,而且基本确定是前缀和。然后硬钢就行了。。。直接暴力预处理前缀和,然后直接dp就行。 题干: 代码: 阅读全文
posted @ 2018-08-31 21:32 DukeLv 阅读(247) 评论(0) 推荐(0)
摘要:这个题是一道splay裸题,但是我不太会写,所以用set直接水过去!!!哈哈哈哈,美滋滋。 set总结: set是一个集合,然后里面没用重复的元素。里面有一些函数: begin() ,返回set容器的第一个元素 end() ,返回set容器的最后一个元素 clear() ,删除set容器中的所有的元 阅读全文
posted @ 2018-08-31 20:19 DukeLv 阅读(220) 评论(0) 推荐(0)
摘要:这个题正解是莫队+树状数组,但是我个人非常不喜欢树状数组这种东西,所以决定用分块来水这个题。直接在莫队维护信息的时候,维护单点同时维护块内信息就行了。 莫队就是这几行核心代码: 剩下就是暴力了,说真的,这个作法真的暴力,但是就是能过。哈哈哈。 题干: 代码: 代码: 阅读全文
posted @ 2018-08-30 22:20 DukeLv 阅读(194) 评论(0) 推荐(0)
摘要:这个题的规律很好找,就是奇数直接除二,偶数除二加n/2.把这个规律整理一下就是(x * 2) % (n + 1),然后就直接求逆元就行了。一直30分的原因是qpow函数传参的时候用的int,然而变量是long long,然后就gg了。 题干: Description 为了表彰小联为Samuel星球的 阅读全文
posted @ 2018-08-29 21:01 DukeLv 阅读(317) 评论(0) 推荐(0)
摘要:小詹从哪整出来这么多水题?%%%这个题用栈模拟一下,然后直接暴力就行了。。。一开始还没想到,用的dfs,我太菜了。。。 题干: Description 依次对每份进行编码,得S1,S2,S3,S4。该矿藏区的编码S为2S1S2S3S4。 例如上图中,矿藏区的编码为:2021010210001。 小联 阅读全文
posted @ 2018-08-29 19:39 DukeLv 阅读(195) 评论(0) 推荐(0)
摘要:大水题,一分钟就做完了。。。直接枚举1~n就行了,然后在n中判断出现多少次。 题干: Description Input 只有一行一个整数 N(0 < N < 1000000)。 Output 只有一行输出,为整数M,即f(1)到f(N)的累加和。 Sample Input 3 Sample Out 阅读全文
posted @ 2018-08-29 19:03 DukeLv 阅读(137) 评论(0) 推荐(0)
摘要:我刚开始,我打眼一看:哇!网络流大水题,直接费用流板子,建边跟zz一样。结果看了一眼数据范围。。。gg,luogu上只能得30,直接建边就是n^2,1e5根本过不了。咋办,只能另谋出路。想不出来,看题解之后恍然大悟!!!woc,还有这样一句话: 惊了,但是还是不会,然后就有这样一个显而易见的东西:a 阅读全文
posted @ 2018-08-28 21:44 DukeLv 阅读(218) 评论(0) 推荐(0)
摘要:啊啊啊,这题有毒。我想了各种花式数据结构,最后告诉我贪心???受不了。。。 题干: 代码: 阅读全文
posted @ 2018-08-27 21:32 DukeLv 阅读(135) 评论(0) 推荐(0)
摘要:水题,20分钟AC,最大值最小,一看就是二分答案。。。 代码: 代码: 阅读全文
posted @ 2018-08-27 20:19 DukeLv 阅读(179) 评论(0) 推荐(0)
摘要:这个题有毒,卡最大值。。。我开1 << 30爆零让我以为我分块错了。。。gg,然后去写RMQ,但是这个题st表是真简单啊。后来刘胜与巨佬一眼看出来我最大值不够大。。。然后1LL<<60也爆零,然而1 << 60 AC,(60LL)AC,1e8爆零。。。无良数据。。。 题目: 分块代码: RMQ代码: 阅读全文
posted @ 2018-08-27 19:49 DukeLv 阅读(192) 评论(0) 推荐(0)
摘要:一开始以为是dp,后来看了一下标签。。。二分答案?之前也想过,但是没往下想,然后之后的算法就顺理成章,先求出第一个地图的所有子矩阵的hash值,然后求第二个,在上一个地图例二分查找,然后就没了。 算法很好想,也很好写,但是一开始我想的和最长公共子序列差不多的dp却不行(子矩阵是子串啊)。。。总的来说 阅读全文
posted @ 2018-08-26 20:26 DukeLv 阅读(184) 评论(0) 推荐(0)
摘要:这个题和我一开始想的区别不是很大,但是要我独自做出来还是有一些难度。 每一次涂色 只有这两种可能: 1) 把一段未被 覆盖过的区间 涂成 * 色 2) 把一段被一种颜色覆盖的区间涂成 * 色 (并且 涂色区间 的两端 同为 被覆盖区间的颜色, 不然就是第一种了) 这种 dp 都要 存一个 f[i][ 阅读全文
posted @ 2018-08-26 18:56 DukeLv 阅读(190) 评论(0) 推荐(0)
摘要:这个题的dp真的恶心。首先,一开始我以为是一道数论题,但是组合数和这个题没啥关系。dp方程巨麻烦,状态是dp[i][j][0/1],代表i位连了j个,上一位是否连着。然后开始转移,证明如下: 我们先来分析i-1,i相邻,也就是f[i][j][1]怎么推。 对于i,i-1,i-2,有这几种关系, 本来 阅读全文
posted @ 2018-08-25 23:14 DukeLv 阅读(384) 评论(0) 推荐(0)
摘要:今天净做水题了,这个题还不到十五分钟就搞定了,思路特别简单,就是直接按照线性求因子个数的思路就行了。 题干: 代码: 阅读全文
posted @ 2018-08-25 22:28 DukeLv 阅读(235) 评论(0) 推荐(0)
摘要:就是线段树维护异或和。之前我线段树区间修改down都是修改当前区间,结果debug出不来,改成每次向下了。 题干: 代码: 阅读全文
posted @ 2018-08-25 21:56 DukeLv 阅读(231) 评论(0) 推荐(0)
摘要:这个题想明白之后很好做,但是不好想。我根本没想出来,上网看了一下才知道怎么做。。。 这个题其实得数是一个等差数列,然后一点点求和就行了。 上次NOIP就是没看出来规律,这次又是,下次先打表找规律!!! 题干: 代码: 阅读全文
posted @ 2018-08-25 20:54 DukeLv 阅读(225) 评论(0) 推荐(0)
摘要:%%%小詹太巨啦!!!我就想直接最小生成树之后建树跑dfs,然后写跪了。。。然后看小詹博客之后恍然大悟,原来直接把边权改为w * 2 + 两边点权值就行了。 但是还是不对,为什么呢?原来我们起点走了三遍,还要加上一次。 题干: 代码: 阅读全文
posted @ 2018-08-25 19:48 DukeLv 阅读(200) 评论(0) 推荐(0)
摘要:这题怎么这么水~~~本来以为挺难的一道题,结果随便一写就过了。。。本来还不知道损坏的牛棚算不算,结果不明不白就过了。。。 题干: 代码: 阅读全文
posted @ 2018-08-25 19:15 DukeLv 阅读(269) 评论(0) 推荐(0)
摘要:啊啊啊,跳题坑死人。抽了一道国集的题,自己瞎编了一个算法,好像过不了而半途而废。转去看题解,发现用二维树状数组维护一下,偏移量我倒是想对了,但是维护的东西和我的完全不一样。还是有很大差距啊。。。 题解链接 吐槽一个事,谁能给我讲讲位运算的优先级? 题干: 我的凉凉代码(都没写完): 正解(不是我写的 阅读全文
posted @ 2018-08-24 21:10 DukeLv 阅读(407) 评论(0) 推荐(0)
摘要:发现是状压dp,但是还是不会。。。之前都白学了,本蒟蒻怎么这么菜,怎么都学不会啊。。。 其实我位运算基础太差了,所以状压学的不好。 题干: 代码: 阅读全文
posted @ 2018-08-23 22:50 DukeLv 阅读(183) 评论(0) 推荐(0)
摘要:求救!!!神犇帮我瞅瞅呗。。。未完。。。调了2个半小时线段树,没调出来,大家帮帮我啊!!! 小詹用st表写。 我的思路就是把中间空着的年份设为无限,然后一点点特判就行了。。。然而没出来。。。 [SCOI2007]降雨量 题干: Description 我们常常会说这样的话:“X年是自Y年以来降雨量最 阅读全文
posted @ 2018-08-23 21:55 DukeLv 阅读(221) 评论(0) 推荐(0)
摘要:20分钟一遍AC,大水题,我的算法比较复杂,但是好理解,就是找可以凑出来一半周长的点来暴力枚举就行了。 题干: 代码: 阅读全文
posted @ 2018-08-23 19:33 DukeLv 阅读(211) 评论(0) 推荐(0)
摘要:这个题的原始方法谁都会,但是n^3会T。之后直接优化,特别简单,就是每次处理出来每层的最大值,而不用枚举。之前没这么做是因为觉得在同一棵树的时候没有下落,所以不能用这个方法。后来想明白了,在同一棵树上的时候,一步步爬一定好于跳跃。然后就没什么了。 题干: 代码: 阅读全文
posted @ 2018-08-23 18:02 DukeLv 阅读(215) 评论(0) 推荐(0)
摘要:这个题有点意思,一开始没想到用dp,没啥思路,后来看题解才恍然大悟:k才1~100,直接枚举每个-1点的k取值进行dp就行了。先预处理出来sz[i][j] i左边的比j大的数,lz[i][j] i右边比j小的数。然后就没啥了。 题干: Description Input Output Sample 阅读全文
posted @ 2018-08-23 17:58 DukeLv 阅读(224) 评论(0) 推荐(0)
摘要:就是一道tarjan缩点的板子,之前在洛谷做过。但是我发现一个事,就是函数里面有一句话: 其中有一段: 但是变成: 也是能AC的,然后我又试了一开始的那个板子题,直接改好像也可以。。。为什么,或者这么写到底对不对,有人知道吗?欢迎大佬指点。 题干: 代码: #include<iostream> #i 阅读全文
posted @ 2018-08-22 22:08 DukeLv 阅读(257) 评论(0) 推荐(0)
摘要:大水题!!!30分钟AC(算上思考时间),直接模拟就行,加一个判断约数的剪枝,再多加几个剪枝就可以过(数据巨水) 我也就会做暴力的题了。 题干: 代码: 阅读全文
posted @ 2018-08-22 19:52 DukeLv 阅读(300) 评论(0) 推荐(0)
摘要:大家吸取我的教训,想好再写。我码了好长时间,最后发现算法处理的是另一个问题,我处理的是正方形情况的,才能用我优化之后的记忆化搜索,然而矩形就凉了。 先看一下题吧: 我的反面教材代码: 然后就凉了,懒得写了,用二维的RMQ搞一下,抄了个比较清晰的代码。。。 唉,后悔啊。。。 阅读全文
posted @ 2018-08-21 22:57 DukeLv 阅读(237) 评论(0) 推荐(0)
摘要:这个题我第一反应是线段树(雾),然后看了一眼题解之后就后悔了。。。前缀和。。。然后二分答案,然后就没有然后了。 题干: 代码: 阅读全文
posted @ 2018-08-20 22:21 DukeLv 阅读(206) 评论(0) 推荐(0)
摘要:想明白之后就是一道大水题,就是两两把最长公共前缀求出来,然后直接取最长的,然后就直接暴力算就行了。。。 题干: 代码: 阅读全文
posted @ 2018-08-20 11:44 DukeLv 阅读(224) 评论(0) 推荐(0)
摘要:bzoj有毒,看不了自己哪错了。。。根本没法debug、 我到现在还是不知道自己代码为什么会T,二分次数也加限制了,但是还是T。。。救命啊!!! 题干: 我的代码:(蜜汁TLE) 网上的AC代码: 没有任何区别好不好!为什么TLE? 阅读全文
posted @ 2018-08-20 10:19 DukeLv 阅读(225) 评论(0) 推荐(0)
摘要:啊啊啊,假的题吧!!!我用的当前弧优化T了6个点,其他人不用优化AC!!!震惊!!!当前弧优化是假的吧!!! 到现在我也没调出来。。。大家帮我看看为啥70.。。。 来讲一下这个题的思路,就是设一个源点,向每一个任务建边,边权为任务价值。然后任务向机器建边,边权为租金,最后机器向汇点建边,边权为购买的 阅读全文
posted @ 2018-08-20 08:50 DukeLv 阅读(171) 评论(0) 推荐(0)
摘要:这是我今天遇到最奇怪的问题,希望有人帮我解释一下。。。 一开始我能得90分: 然而并不知道为什么。。。找了个题解,发现没啥区别,然后就改了一下num的顺序,结果变成80,最神奇的是之前错的那个点对了,然而另两个点错了。。。 蒙了,然后一点点de,到最后也没看出来。通过一些手段发现了是算和的时候出问题 阅读全文
posted @ 2018-08-19 17:34 DukeLv 阅读(229) 评论(0) 推荐(0)
摘要:这个题我一开始想到了二分答案,但是去写了另一个算法,用优先队列直接模拟,最后GG了。。。因为我没考虑每个套牌只能有一个joker。。。尴尬。 后来二分答案,然后暴力验证就行了。 题干: 代码: 阅读全文
posted @ 2018-08-19 11:25 DukeLv 阅读(222) 评论(0) 推荐(0)
摘要:今天写了一个自己的随机跳题小程序,第一次试发现跳的全是不可做题,但是在周围我一眼看见了这个题,不能说一眼看出来,但是也是比较有思路,所以就做他了! 做得比较顺利,做完之后美滋滋,突然发现样例第三组过不了。。。然后发现自己算法有问题。。。GG,又想了一个超复杂的算法,刚开始写就放弃了,根本没法写。 于 阅读全文
posted @ 2018-08-18 22:48 DukeLv 阅读(225) 评论(0) 推荐(0)
摘要:看到一道很有意思的题,这个题简直有毒,是一道物理题。。。好像得用模拟退火。。。但显然我太弱了不会模拟退火,只能用正交分解暴力。。。 每次沿着力的方向走一定的距离,假如转头了,则走的步长就减小一点。 不过这里有一个坑,就是假如每次二分,就会错。。。0.7或0.9就可以。有可能走过了回不来了吧。 题面: 阅读全文
posted @ 2018-08-17 22:59 DukeLv 阅读(275) 评论(0) 推荐(0)
摘要:糖果传递,一开始就想到了n^2的模拟贪心算法,但是一看,数据范围太大,好像只有O(N)能过。。。没啥方法,只好看题解,之后发现,woc,还有这种操作? 这个题直接可以用数学证明。。。 证明如下: 偷来的证明。。。 题目: 代码: 阅读全文
posted @ 2018-08-17 21:03 DukeLv 阅读(206) 评论(0) 推荐(0)
摘要:emm,每次打太麻烦,直接复制就好啦! 阅读全文
posted @ 2018-08-17 17:57 DukeLv 阅读(197) 评论(0) 推荐(0)
摘要:bzoj1024叫生日快乐,其实很简单,但是没看出来就很尴尬。。。 代码很短,而且很好理解 阅读全文
posted @ 2018-08-16 22:23 DukeLv 阅读(265) 评论(0) 推荐(0)
摘要:这个dp其实不是那么难,状态其实很好想,但是细节有少许偏差。 当时我并没有想到最短路要在dp之外写,后来看题解之后发现要预处理出来每段时间1~M的最短路,然后直接dp。 题目: 代码: 阅读全文
posted @ 2018-08-15 22:12 DukeLv 阅读(308) 评论(0) 推荐(0)
摘要:这个题一看就是最小割板子,建边也很好建,但是我竟然忘了初始化。。。 还有,网络流存无向边只需要把两个边都变成w权值,而不是建四条边(虽然也能过,但是内存大一倍) 直接上代码: 阅读全文
posted @ 2018-08-15 09:52 DukeLv 阅读(138) 评论(0) 推荐(0)
摘要:其实很早之前就学过树形dp,今天总接一下。树形dp就是一个在树上跑的dp(滑稽) 先是一道板子题:树上最大独立集 直接上代码了。 然后还有几个稍微比这个难一点的题,比如:加分二叉树 这个题需要枚举中间的断点,然后进行dp。dp比之前简单了,但是其他的要难一些。 还有一个皇宫看守,和最大独立点集很像 阅读全文
posted @ 2018-08-14 22:46 DukeLv 阅读(225) 评论(0) 推荐(0)
摘要:给定一棵树,求树的重心的编号以及重心删除后得到的最大子树的节点个数size,如果size相同就选取编号最小的. 首先要知道什么是树的重心,树的重心定义为:找到一个点,其所有的子树中最大的子树节点数最少,那么这个点就是这棵树的重心,删去重 心后,生成的多棵树尽可能平衡. 实际上树的重心在树的点分治中有 阅读全文
posted @ 2018-08-10 22:46 DukeLv 阅读(2095) 评论(0) 推荐(0)
摘要:今天模拟,状压dp又没写出来。。。还是不会啊,所以今天搞一下这个状压dp。这里有一道状压dp的板子题: Corn Fields Corn Fields 就是一道很简单的状压裸题,但是要每次用一个二进制数表示一行的状态。 附加一个关于位运算的总结: 上题干: 题目不用多解释,直接上代码,写注释了,很好 阅读全文
posted @ 2018-08-08 20:38 DukeLv 阅读(146) 评论(0) 推荐(0)
摘要:主席树是一种数据结构,是可持久化线段树。它能够存储一个线段树的历史版本,然后支持历史版本查询操作。 这里是主席树板子题:静态区间第K小。主要思想就是离散化之后把每个操作的线段树都存起来(每个节点维护一棵线段树),但是内存肯定不允许真的建树,怎么办呢?直接把这里的指针引到上一个历史版本就行了, 这里有 阅读全文
posted @ 2018-08-07 22:18 DukeLv 阅读(222) 评论(0) 推荐(0)
摘要:今天肖神给我讲课,讲了一个用指针写的线段树,写起来比数组复杂,但是貌似动态开点操作好像简单一些。之前我也写过用指针的数据结构,所以理解起来不是很难。 直接写代码: 阅读全文
posted @ 2018-08-05 20:51 DukeLv 阅读(431) 评论(0) 推荐(1)
摘要:今天学了一种网络流,叫费用流。就是把网络最大流的每一条边上加一个权值,然后在网络最大流中找一条权值最小的边。题意就是这样,但是操作起来好像不是很好做。 怎么办呢?其实就是找增广路的方法不一样,原来网络流通过bfs找增广路,这里我们通过spfa找增广路。怎么找呢?其实就是跑一遍·spfa,将最小的路径 阅读全文
posted @ 2018-08-04 21:42 DukeLv 阅读(310) 评论(0) 推荐(0)
摘要:今天邱神给我们讲了图论,还讲了一下网络流算法。自己找了一个洛谷板子题。 之前说最小割的答案等于最大流,但是发现直接写是不对的。为什么呢?因为这个题有一个坑!就是这个题其实不是求的是最小割边,而是最小割点。最小割边的答案就是最大流的答案,但是最小割点不是啊。。。怎么办呢? 只能转化。把割点再构图的时候 阅读全文
posted @ 2018-08-03 21:50 DukeLv 阅读(288) 评论(0) 推荐(0)
摘要:今天学习了一下上次集训讲的置换,当时没懂,这个东西确实难理解。。。我看了《算法竞赛入门经典训练指南》,才勉强明白一点基础。。。 学习置换之前先要理解群论: 了解群论之后才进行初步置换。 先举个例子: 表示1被1到n中的某一个数a1取代,2被1到n中的某一个数a2取代,直到n被1到n中的某一个数an取 阅读全文
posted @ 2018-08-02 22:53 DukeLv 阅读(1215) 评论(0) 推荐(0)
摘要:今天又做了一道NOIP的题,对自信又打击了不少,这次做的是D2T2。 这个题上来一看直接暴力,结果得了45分(还算理想,我不会说我一开始写暴力写错了。。。) 后来想正解,没想出来(本来想到了,但是被自己否了。。。) 看题解发现是二分答案加差分。。。直接上代码: 暴力45分: AC代码: 阅读全文
posted @ 2018-08-01 22:53 DukeLv 阅读(162) 评论(0) 推荐(0)
摘要:今天洛谷疯狂给我推送tarjan的题(它好像发现了我最近学tarjan),我正好做一做试一试(顺便练一练快读和宏定义)。 其实找割点的tarjan和算强连通分量的tarjan不一样,找割点的判定条件比较狗。 首先选定一个根节点,从该根节点开始遍历整个图(使用DFS)。 对于根节点,判断是不是割点很简 阅读全文
posted @ 2018-08-01 20:49 DukeLv 阅读(493) 评论(0) 推荐(0)