穿梭时间的画面的钟 从反方向 开始移动|

tmjyh09

园龄:3年2个月粉丝:1关注:3

01 2022 档案

P3831 [SHOI2012]回家的路 题解
摘要:题目传送门 分析 解法 1: 每两个点都连边,跑裸的最短路。 显然,nm 非常大,暴力连边会 TLE 和 MLE。 解法 2(正解): 首先,对答案产生贡献的只有换乘站,所以我们只用连两种边: 一个换乘站看作 2 个节点,连边,边权为 1(站内换乘)。 将 \(
61
0
0
P1197 [JSOI2008]星球大战 题解
摘要:题目传送门 题意简述 给定一张无向图,每次删去一个节点,问每次操作后的连通块个数。 分析 m2×105,n2m,如果每次暴力删点再 bfs,必定超时。 还记得上次提到的 [USACO16OPEN]Closing the Farm 吗?这两题非常非常相似,我
40
0
0
P1137 旅行计划 题解
摘要:题目传送门 题意简述 给定一张有向图,起点任意,求出到每个点经过的最多点数和。 分析 先把图画出来: 一开始做这题的时候以为是非常简单的最短(长)路,但是发现起点是任意的,没有源点,所以我们就不能用 SPFA 啦反正都死了( 事实上,我们可以对这张图进行拓扑排序,将入度为 0 的节点 \(d
28
0
0
P1396 营救 题解
摘要:题目传送门 分析 这题有好几种方法可以做,有跑最短路的,有些最小生成树的。这里介绍最短路的方法。 单源最短路径,很自然地想到 Dijkstra。不过题目要求的是最大值最小,所以松弛就要改成: if(dis[v]>max(dis[u],e[i].w)) dis[v]=max(dis[u],e[i].w
46
0
0
「面向 oier」最简洁 vscode 配置 c++ 运行环境
摘要:前言 看了网上的不下 50+ 篇配置指北,感觉都很复杂,不够简洁。后来终于用了最简洁的方式配置好了 vscode,不到 2 分钟。 Part1. 安装 .NET Framework 一般来说 Windows 系统自带 .NET Framework,但如果你的电脑没有,就去下载一个,
85
0
0
「THOI」THOI Round1 赛后题解
摘要:A. 出题 题目传送门 该题正解 dp,数据略水,暴力都过了。 完全背包问题,只不过要求刚好装满,所以 f 数组可以全部赋值为一个特殊的数,只有刚好装到这个容量时才能转移。 代码实现: #include <bits/stdc++.h> using namespace std; int f[4
36
0
0
Sublime Text 3 配置 C++ 运行环境
摘要:前言 Sublime Text 3 是一个非常漂亮的代码编辑器,但怎么能让她作为记事本呢?这里就教大家配置 C++ 的运行环境。 Part1. 配置环境变量 要想运行 C++ 程序,首先需要编译器,这里使用 MinGW。可以去官网下载,不过若你安装了 Dev C++ 或 Code::Blocks,无
476
0
0
最小生成树 学习笔记
摘要:前言 最小生成树是最小权重生成树的简称。 通俗来讲就是,一个有 n 个点的无向连通图,选出其中 n1 条边使图联通,每条边都有权值,要求权值和最小。 更详细的解释可参考 OI Wiki。 Kruskal 算法 Part1. 前置芝士 并查集 Part2. 思想 Kruskal 算法
39
0
0
[USACO16OPEN]Closing the Farm 题解
摘要:本题有两道一模一样的题目,改个数据范围即可 AC。 题目1 | 题目2 题意简述 给定一张无向图,每次删去一个点,问每次操作后图是否联通。 分析 判断图是否联通可以想到使用并查集来维护。但是并查集很难实现删除操作,那如何处理呢? 并查集的核心是“并”和“查”,既然题目要求每次删去一个点,那不如反过来
35
0
0
P1057 [NOIP2008 普及组] 传球游戏 题解
摘要:题目传送门 分析 这道题可以用 dp 来做。设 fi,j 为第 j 次传球传到第 i 个人的方案数。一个球可以从左边传过来(i1),也可以从右边传过来(i+1)。那么 \(f_{i,j}=\begin{cases}1,&i=1\&j=0,\\f_{n,
272
0
0
P1958 上学路线 题解
摘要:题目传送门 题意简述 一张地图,只能往上往右走,其中有 n 个障碍不能走上去,问从 (1,1) 走到 (a,b) 有几种方案。 分析 首先,我们将棋盘倒置方便处理,也就是说只能往下往右走。 动态规划。设 fi,j 表示从 (1,1) 走到 \(f_{i,
104
0
1
P2196 [NOIP1996 提高组] 挖地雷 题解
摘要:题目传送门 分析 n20,放心 dfs。难点主要在保存路径上。 一个点的地雷只能挖一次,所以需要维护 vis 数组。 注意,任何点都可以作为起点。 代码 #include <bits/stdc++.h> using namespace std; int n; int a[25]
86
0
0
深色
回顶
收起
点击右上角即可分享
微信分享提示