摘要: ### 前言 题目传送门 $\color{red}{see}\space \color{green}{in}\space \color{blue}{my}\space \color{purple}{blog}$ 在学校比赛时遇到了这一题,写一篇题解纪念一下。 本题是最短路好题。 思路 此题明显是最短 阅读全文
posted @ 2022-08-26 01:51 liangbowen 阅读(12) 评论(0) 推荐(0) 编辑
摘要: 目录 什么是 ST 表 建造 ST 表 ST 表查询操作 ST 表的适用范围与数据结构的对比 模板题 结语&参考文献 什么是 ST 表 ST 表,即 Sprase Table,也叫稀疏表。 它主要用于解决 RMQ(Range Minimum/Maximum Query,区间最值查询)问题。 更生动地 阅读全文
posted @ 2022-08-26 01:50 liangbowen 阅读(172) 评论(0) 推荐(1) 编辑
摘要: 前言 在学习这篇文章之前,你需要了解的算法有: 基本图论知识 链式前向星(图的一种存储方式) 了解 队列、栈 等简单数据结构的实现,用 STL 也行。 什么是拓扑排序 AOV网的定义 在了解拓扑排序(topo sort)之前,我们还得了解一个东西:AOV 网。 AOV 网(Activity On V 阅读全文
posted @ 2022-08-26 01:47 liangbowen 阅读(53) 评论(0) 推荐(0) 编辑
摘要: ### T1 题目:P1469 思路: 输出所有数异或的结果就好了。 因为异或有如下两个性质: $x \oplus x = 0$ $x \oplus 0 = x$ 所以全部数的异或和,等同于两两消去相同的数后的异或和。 按照题目要求,这个就是答案啦。 整体评价: 好简单,有点思维挑战。 代码这么简单 阅读全文
posted @ 2022-08-26 01:46 liangbowen 阅读(18) 评论(0) 推荐(0) 编辑
摘要: 题目:P2737 思路: 这题准确的说,是『布尔型完全背包』。 先打一遍板子,很容易。 int n; scanf("%d", &n); dp[0] = true; for (int i = 1; i <= n; i++) { int a; scanf("%d", &a); for (int j = 阅读全文
posted @ 2022-08-26 01:46 liangbowen 阅读(25) 评论(0) 推荐(0) 编辑
摘要: ### 前言 题目传送门 $\color{red}{see}\space \color{green}{in}\space \color{blue}{my}\space \color{purple}{blog}$ 这题并不困难,代码也挺短的,题目理解稍有困难。 题目大意 有 $(n+1)$ 家商店,也 阅读全文
posted @ 2022-08-26 01:43 liangbowen 阅读(10) 评论(0) 推荐(0) 编辑
摘要: 第一次写游记。 前言 & 个人评价 GDOI2022 普及组:干两天,每天干 3.5h,下午讲解。 我感觉这次比赛好难哇(~~当然是因为我太蒟蒻了~~),题目大概分三种: 过度简单题 困难思维题 大模拟(啊啊啊啊啊啊啊啊啊啊啊啊x1) 出题人声称: 这次比赛更偏向思维(没错过度偏向思维)。 比 CS 阅读全文
posted @ 2022-08-26 01:42 liangbowen 阅读(110) 评论(0) 推荐(0) 编辑
摘要: 题目传送门! 更好的阅读体验? 这题显然可以使用贪心的思想解决。 由于头和尾一定不用更改,所以只需从 $a_2$ 枚举到 $a_{n-1}$。 贪心原则下,我们更改的数应该要与相邻的数相等。 按照上面的原则,如果你更改了 $a_i$,则下一个可能需要更改的数至少是 $a_{i+2}$。 所以,如果此 阅读全文
posted @ 2022-08-26 01:41 liangbowen 阅读(12) 评论(0) 推荐(0) 编辑
摘要: 前言 题目传送门! 更好的阅读体验? 这题是假灰题,建议加上翻译并评红。 题意 给定 $n$ 与 $k$,求 $n$ 的因数中,所有不能整除 $k$ 的数的和。 思路 枚举 $n$ 所有因数 $i$,如果 $i\not\equiv0\pmod{k}$,就统计。 但是,如果用 $O(n)$ 的时间硬枚 阅读全文
posted @ 2022-08-26 01:41 liangbowen 阅读(12) 评论(0) 推荐(0) 编辑
摘要: ## T1 题目:UVA12563 思路: 首先跑一遍『恰好型 01 背包』,这个在我的背包学习笔记中提到了。 memset(dp, -0x3f, sizeof(dp)); dp[0] = 0; int n, t; scanf("%d%d", &n, &t); for (int i = 1; i < 阅读全文
posted @ 2022-08-26 01:41 liangbowen 阅读(17) 评论(0) 推荐(0) 编辑