题目传送门 题意:给出一个$N \times M$的棋盘,棋盘上有一些块可以移动,有一些块无法移动.$Q$次询问,每一次询问给出三个块$a,b,c$,将$a$块变为空格,空格旁边可移动的块可以与空格交换位置.问每一次询问中最小的将$b$块移动到$c$块最开始位置上的移动次数.$N , M \leq 30 , Q \leq 500$ 我觉得我在$NOIP$考场上绝对会直接打暴力qwq 我们能够发现空格必须要在需要移动的格子的四周,而且不移动需要移动的格子,才能发挥效果.所以当空格在需要移动的格子旁…
题目传送门 暴力搜索 看到这道题的第一反应就是直接上$bfs$啦,也没有想到什么更加优秀的算法. 然后就是$15$分钟打了$70$分,有点震惊,纯暴力诶,这么多白给分嘛,太划算了,这可是$D2T3$诶. #include<cstdio> #include<algorithm> #include<vector> #include<cstring> #include<queue> #include<map> #include<ios…
题目描述 小 B 最近迷上了华容道,可是他总是要花很长的时间才能完成一次.于是,他想到用编程来完成华容道:给定一种局面, 华容道是否根本就无法完成,如果能完成, 最少需要多少时间. 小 B 玩的华容道与经典的华容道游戏略有不同,游戏规则是这样的: 在一个 n \times mn×m 棋盘上有n \times mn×m个格子,其中有且只有一个格子是空白的,其余n \times m-1n×m−1个格子上每个格子上有一个棋子,每个棋子的大小都是 1 \times 11×1 的: 有些棋子是固定的,有些…
判断第k短路的权值是否小于T 直接把队友的代码拿过来了,一定很经典 #include <iostream> #include <queue> #include <cstring> #include <vector> using namespace std; ; const int INF = 0x7fffffff; int N, M, S, E, K, T; int inq[maxn]; int dis[maxn]; int cnt[maxn]; struc…
/* 思前想后 还是决定坚持写博客吧... 题意: n个点,m个集合.每个集合里边的点是联通的且任意两点之间有一条dis[i]的边(每个集合一个dis[i]) 求同时从第1个点和第n个点出发的两个人相遇的最短时间,并输出相遇的地点,如果有多个按编号大小顺序输出. 输入: 测试数据 t n m 以下m行每行 dis[i] 该集合点的数量 ...每个点的标号 数据范围: n 2-1e5 所有集合的元素的数量和 1e6 思路: 如果直接跑最短路,边会存爆的. 考虑换种思路建边. 每个集合看作两个点,一…
图论 图的定义与概念 图的分类 图,根据点数和边数可分为三种:完全图,稠密图与稀疏图. 完全图,即\(m=n^2\)的图\((m\)为边数,\(n\)为点数\()\).如: 1 1 0 1 2 1 1 3 2 2 1 1 2 2 0 2 3 3 3 1 2 3 2 3 3 3 0 这个数据是一个完全图. 稠密图,即\(m\)十分接近于\(n^2\)的图.如: 1 1 0 1 2 1 1 3 2 2 1 1 2 2 0 2 3 3 3 1 2 这个数据是一个稠密图. 稀疏图,即\(m\)远远低于\…
第一题:poj3660 其实是Floyed算法的拓展:Floyd-Wareshall.初始时,若两头牛关系确定则fij = 1. 对于一头牛若确定的关系=n-1,这说明这头牛的排名是确定的. 通过寻找节点k来判断: #include<algorithm> #include<bitset> #include<cctype> #include<cerrno> #include<clocale> #include<cmath> #inclu…
今天开始图论的最短路的最后复习,今天自己手打spfa虽然看了一眼书,但是也算是自己打出来的,毕竟很久没打了,而且还是一遍a代码下来15min左右就搞完了,成就感++.所以呢来篇博客记录一下. 香甜的黄油,当年做的时候吃了不少苦头现在完全会打了,下面是当时我的代码: #include<cstdio> #include<cstring> #include<algorithm> #include<queue> #include<vector> #inc…
题目描述 Description 小 B 最近迷上了华容道,可是他总是要花很长的时间才能完成一次.于是,他想到用编程来完成华容道:给定一种局面,华容道是否根本就无法完成,如果能完成,最少需要多少时间. 小 B 玩的华容道与经典的华容道游戏略有不同,游戏规则是这样的: 在一个 n*m 棋盘上有 n*m 个格子,其中有且只有一个格子是空白的,其余 n*m-1个格子上每个格子上有一个棋子,每个棋子的大小都是 1*1 的: 有些棋子是固定的,有些棋子则是可以移动的: 任何与空白的格子相邻(有公共的边)的…
[pixiv] https://www.pixiv.net/member_illust.php?mode=medium&illust_id=57148470 Descrition 首先很明显是期望dp.但是如何进行转移呢? 对于dp,什么样的状态容易储存呢?怎样又分解成相应的子问题呢?于是发现,对于这个问题,我们需要知道猫的位置到老鼠位置的期望值.与这样的相似的状态有很多.观察数据范围,是可以用二维数组存下的.所以我们用f[i][j]表示猫在i点,老鼠在j点的答案. 转移方程: f[i][j]=…