摘要: 前言 今天联考 T2 是这道,又成唐氏了,巨简单题又没想出正解。 思路 由题面,我们知道本题中字符串的每一个长成 \(\texttt{ABC}, \texttt{BCA}\) 或 \(\texttt{CAB}\) 其一的子串都是可以换成另两个其一。 先给大家看三个小转换: \(\texttt{AAB 阅读全文
posted @ 2025-03-04 20:54 M_CI 阅读(29) 评论(0) 推荐(0)
摘要: Part 0. 前言 模考题,想到了做法但是没去打,直到考试结束才知道想对了,遗憾离场,大悲。 Part 1. 思路 显然的,同一州内的所有城市都是不可分裂的,因为我们不可以把一个州劈成几部分,我们可以将其看作一个点。 对于整个岛国,如果这些点(州)与这些边(高速公路)组成的图就是一个 e-DCC( 阅读全文
posted @ 2025-03-04 20:54 M_CI 阅读(13) 评论(0) 推荐(0)
摘要: Part 1. 题意 在 \(N \times M\) 的矩阵中的空地放人机,任一人机上下左右走到边界或墙之前遇不到另一人机。 我已经尽力写得简短了。。 Part 2. 思路 我们先思考无墙的情况。 若无墙,则同車的放置,把草方块当作禁止放車的方块即可,。 贴一下车的放置的代码: #include 阅读全文
posted @ 2025-03-04 20:53 M_CI 阅读(14) 评论(0) 推荐(0)
摘要: Part 0. 前言 今天老师上课讲这题,我们全机房看题时经过了如下情感变化: 第一眼:什么玩意儿,这么难。。 第二眼:woc,这不是简单题吗!! 我谔谔。 Part 1. 正文 显然的,这题最后的答案一定是经过修改后由 a 或 b 或 c 的任意一种组成的矩阵的字符个数,因为本题中同种字符构成的最 阅读全文
posted @ 2025-03-04 20:53 M_CI 阅读(15) 评论(0) 推荐(0)
摘要: 思路 题意还是很清楚的,明摆着求必经边数目。 我们用 Tarjan 算法求出图中所有的 e-DCC(边双连通分量),并缩点构造一棵树。则对于图中任意两点 \(u\) 和 \(v\),他们之间的必经边即为两点分别处在的的 e-DCC 之间距离,因为每个 e-DCC 当中的边都可任走,必不为必经边。 设 阅读全文
posted @ 2025-03-04 20:52 M_CI 阅读(38) 评论(0) 推荐(0)
摘要: Part0. 前言 没想到 SPFA-SLF 冲进了最优解第一版,比多数 Dijkstra 还快。 评测记录(SPFA-SLF 43ms) 评测记录(Dijkstra 44ms) Part1. 题意简述 有 \(M\) 个移动系数 \(-N < C_1 < C_2 < ... < C_M < N\) 阅读全文
posted @ 2025-03-04 20:52 M_CI 阅读(34) 评论(0) 推荐(0)
摘要: 简化题意 给定一个 \(N\) 个点,\(M\) 条边的图,求其中最长的一条最短路径的长度。 \(N \leq 100\),\(M \leq \frac{N\times(N-1)}{2}\) 思路 先解释一下简化题意: 首先最短路径对应原题面的拉紧的绳索,因为两点之间最短路径只可能有如下两种情况: 阅读全文
posted @ 2025-03-04 20:52 M_CI 阅读(25) 评论(0) 推荐(0)
摘要: Part0:前言 奆佬们怎么都说这题是两只手,我英文还是太菜了,就按红蓝两球来讲吧。 Part1:思路 显然,对于每局游戏,可将蓝球移动化为红球在反图上移动,需经过的边不变。于是我们就可以自然地想到使用分层图。 不同边的含义如下: 对于边 \((u,v,w)\),表示正图的边。 对于边 \((v+n 阅读全文
posted @ 2025-03-04 20:52 M_CI 阅读(13) 评论(0) 推荐(0)
摘要: 思路 首先,我们定义一个正整数 \(n\) 含有质因子 \(p\) 的个数为 \(v_p(n)\),则题目即求最少的进行 \(a_i=a_i\times i\) 操作的次数,使得 \[\sum\limits_{i=1}^{n}v_{\tiny 2}(a_i) \geq n \]且对于每个 \(i\) 阅读全文
posted @ 2025-03-04 20:52 M_CI 阅读(21) 评论(0) 推荐(0)
摘要: 题意简述 给定一个由 0 和 1 组成的矩阵,其中由 1 组成的连通块不存在环,即每两个 1 之间仅有 \(1\) 条由 1 组成的路径,每次询问求一个给定的子矩阵中有多少个由 1 组成的连通块。 思路 因为这个矩阵中的由 1 组成的连通块都是树,所以可以将这个矩阵看做一个森林,而我们知道,一棵树的 阅读全文
posted @ 2025-03-04 20:51 M_CI 阅读(18) 评论(0) 推荐(0)
摘要: 题目传送门 Part1. 思路 这一题要找到交流次数最多的一组答案,所以理所当然地想到要尽可能的多用交流次数。 所以要尽可能的多匹配还有交流次数的人去交流。 但是如果随便匹配,就会出现这样的情况: 1 3 1 2 3 这组数据的答案很明显: 3 1 3 2 3 2 3 假如随便匹配,就可能得到这样的 阅读全文
posted @ 2025-03-04 20:51 M_CI 阅读(36) 评论(0) 推荐(0)
摘要: 思路 就是搜。 将所有为 1 的点加入队列,然后更新搜到的点离最近的 1 的距离。 代码 #include <bits/stdc++.h> using namespace std; const int d[4][2]={{1,0},{-1,0},{0,1},{0,-1}}; int t,n,m,a, 阅读全文
posted @ 2025-03-04 20:50 M_CI 阅读(12) 评论(0) 推荐(0)
摘要: 思路 首先看到数据范围,观察到 n、m 都不大,所以考虑模拟染色过程。 遍历每个点,然后枚举以该点为左上角的勾形的大小,如果可行,则将这块勾形区域标记。 最后遍历一遍原图,如果有没标记过的需染色点,则输出 NO,否则输出 YES。 代码 纯暴力,就按照思路中的流程来,所以不加注释。 #include 阅读全文
posted @ 2025-03-04 20:50 M_CI 阅读(27) 评论(0) 推荐(0)
摘要: 提一嘴这题的暴搜。 首先看到图上每个点,若该点为车,那么从这个点开始搜索,循环判断在这辆车朝向的一条直线上,还有没有拦住它的车,如果有,就从该辆拦路车的位置继续搜索,一直到搜到的位置的车没有拦路车,就输出该车,并标记该车已出停车场,再回溯继续处理。 #include <bits/stdc++.h> 阅读全文
posted @ 2025-03-04 20:49 M_CI 阅读(16) 评论(0) 推荐(0)
摘要: 首先,看到标签有拓扑排序,然后题面中提到任务间有依赖关系,所以必定首选拓扑排序。 因为要让副处理器处理次数尽量少,所以就要让主处理器处理次数尽量多。所以开两个队列,一个维护主处理器,另一个维护副处理器。先对主处理器拓扑排序,主处理器拓扑排序完判断维护副处理器的队列中是否还有元素,如果有,则将答案加 阅读全文
posted @ 2025-03-04 20:49 M_CI 阅读(11) 评论(0) 推荐(0)
摘要: 比较好的 Trie 树练手题。 思路 首先,Trie 树有 insert 和 find 两个函数。 insert 使用遍历,在遍历原字符串时,如果未找到这个字符对应的节点,则增添该节点,然后将当前遍历到的节点更新,遍历完整个字符串后标记遍历到的最后一个节点。 void insert (string 阅读全文
posted @ 2025-03-04 20:49 M_CI 阅读(14) 评论(0) 推荐(0)
摘要: P0:序 考试时脑抽写拓扑写了一大堆破烂,只对了样例(悲)。 P1:思路 P1-1:考场思路 考试时一眼拓扑,但跑字典序最小的拓扑后发现错了,就改为了上面的破烂。 首先会想到要把编号小的尽量放在前面,编号大的尽量放后面,然后就求出了最小字典序的拓扑序。但这样就会 AC 吗?并不是。样例即可卡掉: 3 阅读全文
posted @ 2025-03-04 20:41 M_CI 阅读(15) 评论(0) 推荐(0)
摘要: Never gonna give you up↑Never gonna let you down↓ 思路 先看到题面中的 DFS 最短路伪代码,可发现,每个结点的 \(dis\) 值只会被能够到它的仅一条路径更新,若存在多条路径(\(>1\) 条)可以到达该点的时候 DFS 将会出错。而因为是无向图 阅读全文
posted @ 2025-03-04 20:40 M_CI 阅读(21) 评论(0) 推荐(0)
摘要: 从 CF1251E1 来的,补一发。 原题链接 思路 一眼丁真,鉴定为 \(O(n \log_2 n)\) 贪心。 首先将所有人按 \(a_i\) 从小到大的顺序排序,再倒序循环枚举每个人,使得有更高代价的人可以被“零元购”就成为 Kevin 的朋友 。每次将排完序后的第 \(i\) 个人的 \(b 阅读全文
posted @ 2025-03-04 20:40 M_CI 阅读(18) 评论(0) 推荐(0)
摘要: 原题链接 思路 一眼丁真,鉴定为贪心。 一开始想了个 \(O(t \times n^2)\) 的暴力贪心,但因为看错数据范围而打了个 \(O(t \times n \log_2 n)\) 的小根堆维护的贪心。 首先将所有人按 \(m_i\) 从小到大的顺序排序,再倒序循环枚举每个人,使得有更高金钱需 阅读全文
posted @ 2025-03-04 20:38 M_CI 阅读(13) 评论(0) 推荐(0)