随笔分类 -  题解

摘要:题目link:https://www.luogu.com.cn/problem/P1437 Part1: 首先可以考虑用第 $i$ 行来表示状态。 但是容易发现,如果想要知道第 $i$ 行的第 $j$ 个的状态,最差情况是需要枚举上面的 $2^n$ 个状态的。 因为每枚举到一个砖块,都需要考虑上面两 阅读全文
posted @ 2021-08-10 19:10 louis_11 阅读(238) 评论(0) 推荐(0)
摘要:题目link:https://www.luogu.com.cn/problem/UVA1394 Part0: 题意简化: 约瑟夫问题。 给定 $n$ 个编号由 $1$ $\text{~}$ $n$ 的人,最开始杀掉第 $m$ 个人,接着每数 $k$ 个人就杀掉最后数到的那个,求最后剩下的人的编号。 阅读全文
posted @ 2021-08-04 17:36 louis_11 阅读(78) 评论(0) 推荐(0)
摘要:题目link:https://www.luogu.com.cn/problem/P2151 Part0: 注意题目有重边。 Part1: 首先这道题的题目限制为走过一条边不能按原边返回,这就导致了这个图的有向性,从而得出需要拆边的结论。 Part2: 拆完边后,容易看出如果要想满足题目限制,那么相当 阅读全文
posted @ 2021-07-28 23:14 louis_11 阅读(51) 评论(0) 推荐(0)
摘要:题目link:https://www.luogu.com.cn/problem/P5343 Part1: 首先这道题能够想到一个比较显然的 $dp$ 。 设 $dp[i]$ 表示长度为 $i$ 的序列有几种分块方式。 那么容易的出转移方程: $dp[i]$ $=$ $∑$ $dp[i$ $-$ $p 阅读全文
posted @ 2021-07-26 10:56 louis_11 阅读(93) 评论(0) 推荐(0)
摘要:题目link:https://www.luogu.com.cn/problem/P2579 Part1: 首先不看鳄鱼,那么题目要求的就是豆豆从 $s$ 走到 $e$ 并走过 $k$ 条边的方案数(这里每过一个石桥需要 $k$ 单位的时间,因此也可将其看作走过 $k$ 条边)。 这里不难想到图论中邻 阅读全文
posted @ 2021-07-22 13:45 louis_11 阅读(74) 评论(0) 推荐(0)
摘要:题目link:https://www.luogu.com.cn/problem/P3007 $2-SAT$ 裸题。 建图,设第 $i$ 号点表示支持第 $i$ 个法案,第 $i$ $+$ $n$ 号点表示反对第 $i$ 个法案。 对于每头奶牛的两个条件,因为题目要求必须满足其一,那就对奶牛的两个条件 阅读全文
posted @ 2021-02-21 21:41 louis_11 阅读(285) 评论(0) 推荐(0)
摘要:题目link:https://www.acwing.com/problem/content/107/ 首先考虑将这题化简一下。容易得出交换两行和交换两列的操作是不会互相影响的,即交换了两列之后,每一行的摊位数量不变,交换行同理。 因此可以对于行进行操作,再对列进行操作(两者做法相同)。 先不管列,就 阅读全文
posted @ 2021-01-25 17:46 louis_11 阅读(130) 评论(0) 推荐(0)
摘要:题目link:https://www.acwing.com/problem/content/102/ 对于此题,因为每个数都比较的大,所以差分进行处理。 设原数组为 $a[i]$ ,差分后数组为 $d[i]$ $=$ $a[i]$ $-$ $a[i$ $-$ $1]$。 则容易得出原题转换为: 给定 阅读全文
posted @ 2021-01-18 22:17 louis_11 阅读(170) 评论(0) 推荐(0)
摘要:题目link:https://www.luogu.com.cn/problem/P2114 首先考虑暴力:直接枚举 $0$ ~ $m$ ,即初始攻击力,然后计算出其通过每扇门后的值, $ans$ 记录最大值即可。时间复杂度 $O(n$ $*$ $m)$ 。 考虑优化:首先可以知道 & (与) 、| 阅读全文
posted @ 2021-01-15 10:01 louis_11 阅读(117) 评论(0) 推荐(0)
摘要:题目link:https://www.acwing.com/problem/content/93/ 注意,本题解中,存点为 $0$ ~ $n$ $-$ $1$ ,二进制最低位为第 $0$ 位。 二进制压缩状态,第 $a$ 位为 $1$ 表示第 $a$ 个点走过了,否则没有走过。 考虑朴素的 SPFA 阅读全文
posted @ 2021-01-14 20:38 louis_11 阅读(95) 评论(0) 推荐(1)
摘要:题目link:https://www.luogu.com.cn/problem/P6202 本题推式子即可。 首先先模拟一下密码更新的过程,设一共有 $n$ 头牛,密码初始值分别为 $c[1]$ , $c[2]$ , $c[3]$ , $...$ , $c[n]$,密码初始的总和为$sum$(以后的 阅读全文
posted @ 2020-11-30 19:09 louis_11 阅读(75) 评论(0) 推荐(0)
摘要:题目link:https://loj.ac/problem/10013 经典的三分裸题。 三分主要是用来求一个满足单峰性的函数的最大/最小值的一种算法,其原理和二分基本一样。假设求最小值,首先把选择区域分为三段,然后比较这两个三等分点的函数值谁更小一些,大的那一边就不要了(如果大的是靠左的,那就连着 阅读全文
posted @ 2020-11-03 20:03 louis_11 阅读(155) 评论(0) 推荐(0)
摘要:题目link:https://loj.ac/problem/10015 这道题虽说是二分里的,但是我没用二分的做法。 首先我的想法是直接找到任意两点之间的最大距离即可,但是后来写完交上去发现不对,之后分析了一下发现两个点成为同一个连通块是可以通过另外一个连通块更新距离的,因为另一个连通块也可以扩散, 阅读全文
posted @ 2020-11-01 20:05 louis_11 阅读(130) 评论(0) 推荐(0)
摘要:题目link:https://loj.ac/problem/10011 求最大的距离最小,典型的二分题。二分答案距离,然后贪心判断是否可行即可。别忘了要先排序。 1 #include <bits/stdc++.h> 2 #define INF 0x3f3f3f3f 3 using namespace 阅读全文
posted @ 2020-11-01 19:58 louis_11 阅读(165) 评论(0) 推荐(0)
摘要:题目link:https://loj.ac/problem/10009 首先对于每一个鱼池,必须经过前面的鱼池才可以在当前鱼池钓鱼,因此可以先枚举终点,即最后在哪个鱼池结束钓鱼;然后再判断在当前鱼池钓几次鱼,选择最优的情况。$O(1e5$ $log$ $1e5)$ 详见代码。并不会很有逻辑性的证明。 阅读全文
posted @ 2020-10-31 22:28 louis_11 阅读(241) 评论(0) 推荐(0)
摘要:题目link:https://loj.ac/problem/10006 首先对于一个序列,从$a[1$ ~ $l]$都符合最佳序列,假设对于第$l$ $+$ $1$个数,它放到从$l$ $+$ $1$ ~ $r$的区间是一种最优的方法,并且它也可以放在从$1$ ~ $l$ $+$ $1$这里,那么根 阅读全文
posted @ 2020-10-29 19:42 louis_11 阅读(135) 评论(0) 推荐(0)
摘要:题目link:https://loj.ac/problem/10005 求最大值先乘小的,最小值先乘大的。可以用堆来维护。 因为正常来说,每个数都是能被乘到的,但是它还有一个加一,所以将越多个加一乘到最大的上面就是最大值,因此应该先乘最小的数,以此类推。 最小值同理。 1 #include <bit 阅读全文
posted @ 2020-10-28 06:58 louis_11 阅读(162) 评论(0) 推荐(0)
摘要:题目link:https://loj.ac/problem/10002 首先这道题不是用中心点 $+$ 半径作为一个区间的,可以发现如果那样算的话,圆与圆之间可能还会有一个缝隙,所以应该用勾股定理求出每一个圆所覆盖的区间,注意一下上下的距离够不够,然后就是区间覆盖问题,直接贪心即可。$O(n$2$) 阅读全文
posted @ 2020-10-25 16:35 louis_11 阅读(170) 评论(0) 推荐(0)
摘要:题目link:https://loj.ac/problem/10004 首先根据贪心,容易得出应该尽可能的不失去扣钱数多的游戏,因此先按照扣钱数进行排序。随后从后往前枚举时间,能完成就完成,因为有可能出现扣钱数多的游戏但时间宽裕、扣钱数相对少但时间紧的情况,因为答案要求最大,所以尽量每个游戏的时间都 阅读全文
posted @ 2020-10-25 15:28 louis_11 阅读(209) 评论(0) 推荐(0)
摘要:题目link:https://loj.ac/problem/10001 贪心即可,先按右端点进行排序,然后对于第$i$个要求,能往右种树就往右种。$O(n*h)$ 证明:对于第$i$棵树,如果种它是一种最优情况,那么如果不种$i$,种同样和$i$在$i$第一个出现的建议内$i$的右边没树的地方的树, 阅读全文
posted @ 2020-10-25 13:36 louis_11 阅读(143) 评论(0) 推荐(0)