首页 > [SCOI2009]最长距离
头像 shyyhs
发表于 2020-09-25 17:33:18
100%的数据,满足1<=N,M<=30,0<=T<=30---来自洛谷的数据范围.简单来说就是暴力,暴力枚举一个点,然后再算到其他点的之间最少需要移除多少障碍物.然后就结束了. #include <bits/stdc++.h> using namespace s 展开全文
头像 __故人__
发表于 2020-09-27 19:47:12
分析 因为 都很小,所以暴力搜索就可以过。加个小减枝就可以了。那么我们枚举一个点作为起点,然后求到其它点最少通过多少个障碍就可以了。因为用了搜索,这里不分析时间复杂度。 代码 #include<bits/stdc++.h> using namespace std; const int 展开全文
头像 林思艺
发表于 2020-09-25 16:04:20
题意 给你一的网格图,表示通路,为障碍。你有次机会使得障碍变为道路(变为)。求这张图上的最大欧几里得距离。 思路 先预处理表示一个点到任意点之间的障碍个数,如果小于则视为通路。再求这一点和全图的最大欧几里得距离。最后枚举全图每一个点作为起点的情况,再用记录最大值就可以了。 代码 #include& 展开全文
头像 又在摸鱼的大熊猫很勤奋努力
发表于 2020-09-25 19:11:49
[SCOI]最长距离 题目大意 给你一个图,里面有障碍你能移走个障碍,然后求能够联通的一个点对的最大距离是多少 分析 因为求的只是一个点对的最大距离,所以其实我们只需要一走这一条路径上的障碍即可 那么只要路径上的最小障碍数量小于等于就可以更细答案 求路径上的障碍数可以用最短路的思想,把点权看作边权即 展开全文
头像 DeNeRATe
发表于 2020-09-25 17:04:46
分析 首先亮瞎我狗眼的便是这个阔怕的数据范围 所以,这意味着我们直接暴力是没有问题的所以我们直接枚举开始点BFS+优先队列处理最短路然后枚举另一个点判断两人之间的最小移动障碍物个数是否Limit即可时间复杂度: 代码 //P4162 #include <algorithm> #inclu 展开全文
头像 Dear㉿You
发表于 2020-09-28 10:56:33
分析: 1. n,m范围都挺小的。那我们可以以每个点为起点,求出到达另外的点要移动的最少的障碍,然后枚举每一个 点,只如果移动的障碍数在规定范围内,就求出他与起点的距离,取最大的一个 代码: #include<bits/stdc++.h> #define dl double u 展开全文
头像 熠丶
发表于 2020-09-25 23:37:06
思路:dfs 做法: 1.枚举开始的点2.以该点为起点走一遍dfs,记录每个点经过障碍物的次数3.枚举每一个点到起点的距离,找出最大值 代码 #include <bits/stdc++.h> using namespace std; #define pb push_back #defin 展开全文
头像 Kur1su
发表于 2020-09-29 21:13:07
Description windy有一块矩形土地,被分为 N*M 块 1*1 的小格子。 有的格子含有障碍物。如果从格子A可以走到格子B,那么两个格子的距离就为两个格子中心的欧几里德距离。如果从格子A不可以走到格子B,就没有距离。如果格子X和格子Y有公共边,并且X和Y均不含有障碍物,就可以从X走到Y 展开全文
头像 灯又烬
发表于 2020-09-25 16:31:07
题意 给出n*m的图,每个格点为1或0,1代表到此格点是一个障碍物.在可以移除t块障碍物的条件下。问所有互相可达的两点中,欧几里得距离最大的为多少。 题解 百度搜了一下原题数据范围才敢写....数据范围是<=30所以最多只有30*30=900个格点,可以求出每两点最少经过多少个障碍物后,枚举两 展开全文
头像 sunrise__sunrise
发表于 2020-09-30 21:44:21
题目意思 给你个01地图大小n * m,你只能走最大T个1的地方。问你能最远走多远?起点随便选终点距离最远即可。地图规模最大30 * 30 解题思路 地图规模比较小,可以随便写复杂度,那么我们直接使用最暴力的算法,枚举每一个位置成为起点,对每一个位置算一次DFS,把去到每一个点的最短1的数量算出来, 展开全文

等你来战

查看全部