随笔分类 -  题解

摘要:题面 分析 听说可以用二分做,但是我直接模拟。 最开始我先直接把所有的日子直接转换成儒略历。 若转换后没有超过公元年,那么直接输出,结束。 若超过公元年,先给年号 \(+1\) (跳过 $0$ 年),然后再判断: 若没有超过 1582.10.5,直接输出。 否则,给天数加上十天,然后开始补格里高利历 阅读全文
posted @ 2020-11-08 09:07 Macesuted 阅读(168) 评论(0) 推荐(0)
摘要:题面 题面 给定一个矩阵,你需要从左上角走到右下角,每一步你可以向右,向上或是向下。你不能重复经过相同的方格,每一个方格上都有一个数,你需要最大化你经过的路径上的数之和。 分析 首先很容易想出较为简易的 \(O(n^2m)\) DP 转移方法。 记 \(f_{i,j}\) 表示从 \((1,1)\) 阅读全文
posted @ 2020-11-08 08:34 Macesuted 阅读(106) 评论(0) 推荐(0)
摘要:题面 题意 给你一份代码,仅包含 loop op break continue 四个命令,分别表示循环若干次,执行若干单位操作,跳出此层循环,跳过此层循环剩余部分。要你算出此代码的时间复杂度。 分析 我们可以对每一个 loop 和 op 操作建一个点,点权即为该操作后面的 x 值,再按照他们的包含关 阅读全文
posted @ 2020-10-29 10:37 Macesuted 阅读(343) 评论(0) 推荐(0)
摘要:题面 Time:23 ms,Memory:756.00 KB,Code:3.07KB 不加 O2,发此篇题解的时候是最优解 rk1。 题意 给出一个地图,地图上初始有 \(c\) 条贪吃蛇和一些食物。 接下来会给出 \(k\) 秒内每条贪吃蛇的移动规则,你需要输出 \(k\) 秒后所有蛇的信息。 分 阅读全文
posted @ 2020-10-04 13:19 Macesuted 阅读(71) 评论(0) 推荐(0)
摘要:题面 题意 现在有一个天平,你拥有一些种类的砝码,这些砝码的重量均在 $1 \sim 10$ 间且对于每一种砝码你有无数多个。现在按照两个要求依次放置 \(m\) 个砝码,要求如下: 相邻两次放置操作不能放置相同的砝码 每次放下砝码后必须保证放下砝码的这个盘的总重量大于另一盘。 其中第一个砝码必须放 阅读全文
posted @ 2020-08-16 21:20 Macesuted 阅读(112) 评论(0) 推荐(0)
摘要:题面 题意 一个跑酷游戏,每一回合玩家先向前跑一步,然后允许向上一格、向下一格和不动,然后火车前进两步。如果撞到火车则游戏失败,如果玩家成功跑到了地图的最右边,则游戏胜利。现在告诉你场上的情况,问你玩家是否可以成功。 分析 首先很容易想到使用 bfs,因为在这里有拐弯这一个操作,这一处会使得可能的方 阅读全文
posted @ 2020-08-16 21:07 Macesuted 阅读(135) 评论(0) 推荐(0)
摘要:题面 题意 问你矩阵所有从左上角到右下角的路径中异或和等于 \(k\) 的路径数量。 分析 常规思路就是从左上角开始搜索,但是由于 \(n,m\le20\) 所以时间复杂度在 \(O(2^{40})\) 左右,显然是过不去的。 这里使用双向 dfs,我们从左上角和右下角分别做两次 dfs,并且让两个 阅读全文
posted @ 2020-08-16 20:41 Macesuted 阅读(98) 评论(0) 推荐(0)
摘要:题面 题意 按照时间顺序给你 \(n\) 个申请,每个申请会给出申请发起时间,占用空间大小,占用时间三个参数,程序会尝试在申请发起时分配内存,分配的内存必须是一段连续的,大小满足条件的空间,如果无法在申请发起时直接分配出内存,询问将进入等待队列,在之后的任意时刻一旦空间满足条件队头会直接出队并且程序 阅读全文
posted @ 2020-08-16 19:28 Macesuted 阅读(81) 评论(0) 推荐(0)
摘要:题面 题意 这里有 \(n\) 个派,\(f+1\) 个人(由于题面中说有 \(f\) 个朋友,加上我自己,一共是 \(f+1\) 个人)需要平分这些派,每个人分到的面积必须相同,并且每个人分到的都必须是一整块(原来的派可以切开)。 解法 简单二分答案,二分每个人分到的派的面积。其中 check 函 阅读全文
posted @ 2020-08-16 18:03 Macesuted 阅读(79) 评论(0) 推荐(0)
摘要:题面 题意 告诉你若干立方体每个面的颜色,让你在所有立方体上重新染尽可能少的面以使得最终这些立方体完全一样,即对应面颜色均相同。(包括立方体以任意方向摆放时相同) 解法 如题意模拟,代码有一定难度。 我们先使用dfs来枚举出每一个立方体摆放的方向,然后在确定完 \(n\) 个立方体的摆放方向后,对于 阅读全文
posted @ 2020-08-16 17:56 Macesuted 阅读(87) 评论(0) 推荐(0)
摘要:题面 题意 题目中给出两个数组 \(A[]\) 和 \(B[]\) ,你拥有一个存货数量,在第 \(i\) 天的上午会加上 \(A_i\) ,下午你可以选择减少 \(B_i\) 的存货来满足一个顾客的要求。问 \(n\) 天内你最多能满足多少顾客。 做法 我们先尽可能满足所有我们遇到的顾客,并且使用 阅读全文
posted @ 2020-08-16 17:21 Macesuted 阅读(81) 评论(0) 推荐(0)
摘要:CF319D 这么棒的题居然没有人写。 很类似的题:P1117(也是黑色的)(和我写的这道题的的博客) 题意分析 题目意思是告诉我们一个字符串,然后让我们从短到长依次缩短相邻且相同的字符串(例如abcabc变为abc)。 我们枚举缩短的字符串的长度$len$,然后判断有没有长度为$2 * len$的 阅读全文
posted @ 2020-07-21 20:03 Macesuted 阅读(77) 评论(0) 推荐(0)
摘要:P1117 跟这道题很像:CF319D(这也是黑色的) 分析 这是一道后缀SA+ST的题目,但是众所周知字符串哈希是一种异常优秀的算法,所以我们使用字符串哈希解决这一道问题。在这道题中字符串哈希相比于SA的方法虽然慢了一个$O(logn)$,但是依旧在复杂度可承受范围内。 在这道题中我们需要求出拆分 阅读全文
posted @ 2020-07-21 19:47 Macesuted 阅读(96) 评论(0) 推荐(0)
摘要:题面 题意分析 题目中会给出n个点,每个点都有一个父亲,这样形成一个图,让你在某一处(可以在点上,也可以在边上)安置一个快餐店使得整张图上离它最远的点最近。 很容易想到在题目最后至少有两个点离快餐店的距离相同,因为如果不相同,快餐店可以朝较远点的方向移动一段距离,最后答案更优。而由于快餐店离这两个点 阅读全文
posted @ 2020-06-13 14:01 Macesuted 阅读(124) 评论(0) 推荐(0)
摘要:题面 题意 这道题的大致意思就是,在一个以0号节点为根的树上,我需要在k个结点修建伐木场。然后对于每一个点,它对答案的贡献是他木头产量乘上它离下游最近伐木场的距离。让你合理分配伐木场安置距离以使得贡献最小。 分析 其实很容易就会想到用$f_{i,j}$来表示在i号点为根的子树上修建j个伐木场所得的最 阅读全文
posted @ 2020-06-12 06:43 Macesuted 阅读(107) 评论(0) 推荐(0)
摘要:题面 题意 大致就是你有若干种货币,每种货币都有各自的价格,并且每种货币都有一定的数量。现在有若干物品,每种物品都有自己的价格,现在问你对于每一种物品的价格能否直接用已有的货币凑出。 分析 由于物品数量 \(m\) 最大可达 $105$,对于每个物品进行方案的枚举肯定是不可行的。又看到 \(n\) 阅读全文
posted @ 2020-05-27 20:01 Macesuted 阅读(168) 评论(0) 推荐(0)
摘要:题面 黑色大模拟一题,身为大模拟爱好者的我当然要A掉它并且写一篇题解。 刚进来的同学切勿被黑色的难度给吓出去 切入正题 题意 题目中给出了一种很像象棋的棋叫做鸭棋的,具体告诉了你鸭棋的玩法。然后题目告诉你红蓝双方在棋盘上对弈的操作情况,让你模拟棋局,输出一些题目中需要的信息。 总的来说,一共有七种棋 阅读全文
posted @ 2020-05-13 20:31 Macesuted 阅读(111) 评论(0) 推荐(0)
摘要:题面 题目大意 给定一张$n*m$的地图,包含有一个起点及一个终点,询问从起点到终点的最优路线。 其中人物的运动方法有两种,第一可以用正常的走法,可以向八个方向移动一格;第二可以用瞬移,我们使用一次瞬移技能就可以向四个方向移动$d$格。 分析阻挡人物运动的因素,第一就是人物不能超出地图边界(如果你的 阅读全文
posted @ 2020-05-08 15:17 Macesuted 阅读(58) 评论(0) 推荐(0)
摘要:题面 分析 对于题面我们很容易发现,我们可以将n个数分成若干个长度相同的环。 通过样例我们就可以发现,对于每个环,我会把最大的数都放在里面,我会在最大的边上放次大的和更次大的。 如果你无法理解,我们看样例解释 样例1中给出的是1 2 3 4 5 6这几个数 k=1 我们的方案是${3,1,2,4,6 阅读全文
posted @ 2020-03-08 09:42 Macesuted 阅读(172) 评论(0) 推荐(0)
摘要:题面 题目 大意就是给定一个序列,对其进行两个操作,交换相邻的两个数,或者对全序列进行一遍冒泡排序。 分析 观察题面可以发现 当ti=1时我们需要交换相邻的两个数 当ti=2时我们需要对全序列进行冒泡排序 由于数据量极大,显然暴力的模拟一定不行 我们记录第i位数前面比它大的数的数量为$before[ 阅读全文
posted @ 2020-03-08 09:08 Macesuted 阅读(165) 评论(0) 推荐(0)