Artwork (Gym - 102346A) 题目链接 算法 DFS,连通块 时间复杂度:O(k*n + k * k) 1.这道题就是让你判断从(0,0)到(m,n),避开中途所有的传感器(传感器的检测范围为半径为s的圆)的检测区域,最终能否到达(m,n). 2.这道题很容易想到圆与圆相切或相交最后把能出去的路全堵上了,具体是把上下.左右.左下.右上这四个边界给堵掉一部分(只要满足前面四种情况的其中一个,就过不去).见下图. 很明显,这样堵绝对出不去.然而方法是有,但怎么实现它呢?由于当时以为…
题目传送门 题意:从炮台射出一个球,三个及以上颜色相同的会掉落,问最后会掉落多少个球 分析:先从炮台找一个连通块,然后与顶部连接的连通块都不会掉落,剩下的就是炮台射出后跟随掉落的. #include <bits/stdc++.h> const int N = 100 + 5; char str[N][N]; int H, W, h, w; int ans; bool check(int x, int y) { if (x < 1 || x > H || y < 1 || y…
D. Lakes in Berland time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output The map of Berland is a rectangle of the size n × m, which consists of cells of size 1 × 1. Each cell is either land or…
题目描述 有一个仅由数字000与111组成的n×nn \times nn×n格迷宫.若你位于一格0上,那么你可以移动到相邻444格中的某一格111上,同样若你位于一格1上,那么你可以移动到相邻444格中的某一格000上. 你的任务是:对于给定的迷宫,询问从某一格开始能移动到多少个格子(包含自身). 输入输出格式 输入格式: 第111行为两个正整数n,mn,mn,m. 下面nnn行,每行nnn个字符,字符只可能是000或者111,字符之间没有空格. 接下来mmm行,每行222个用空格分隔的正整数i…
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3781 Time Limit: 2 Seconds      Memory Limit: 65536 KB Leo has a grid with N rows and M columns. All cells are painted with either black or white initially. Two cells A and B are calle…
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=5268 题目大意:字符一样并且相邻的即为连通.每次可翻转一个连通块X(O)的颜色,问至少改变几次使得图上所有字符都相等. 解题思路: 1) dfs( 建图 ) ,因为翻转的时候每翻转连通块中一个整个连通块都翻转,这样你可以将其看成一个有边相连的无向图,每个边的两个顶点颜色都不一样. 2) bfs( 寻找最优解 ) , 建完图后就需要翻转计算最优解,可以枚举从每一点开始…
题目传送门 /* DFS:油田问题,一道经典的DFS求连通块.当初的难题,现在看上去不过如此啊 */ /************************************************ Author :Running_Time Created Time :2015-8-4 10:11:11 File Name :HDOJ_1241.cpp ************************************************/ #include <cstdio> #i…
题目链接: C - CodeCoder vs TopForces Gym - 101142C 题目大意:给你n个人的信息,每一个人的信息包括两个.t1和t2.A>B的前提是A的t1和t2至少有一个是大于B的t1和t2的.还要注意有一种情况当A>B,B>C的时候,A也是大于C的(虽然有可能A和C直接比,有可能A是小于C的). 打个比方: A 4 10 B 3 13 C 5 12 这个时候A是大于B的,但是A是小于C的,但是B是大于C的,所以就可以认为A是大于C的. 具体思路:首先按照x进行…
背景描述 ztw同志负责探测地下石油储藏.ztw现在在一块矩形区域探测石油.他通过专业设备,来分析每个小块中是否蕴藏石油.如果这些蕴藏石油的小方格相邻(横向相邻,纵向相邻,还有对角相邻),那么它们被认为是同一油藏的一部分.在这块矩形区域,可能有很多油藏.你的任务是确定有多少不同的油藏. 输入 输入可能有多个矩形区域(即可能有多组测试).每个矩形区域的起始行包含m和n,表示行和列的数量,1<=n,m<=100,如果m=0表示输入的结束,接下来是n行,每行m个字符.每个字符对应一个小方格,并且要么…
Artwork Gym - 102346A 题意:给n*m的地图,入口是(0,0),出口是(n,m),其中有k个监视器,坐标是(xi,yi),监视半径是r,问一个人能不能不被监视到,从起点到终点. 如果不能走到终点,无非便是监视范围把路全堵死了,所以开始的想法便是计算几何题,看多个圆能不能把横的和竖的都给覆盖了,但很明显行不通,然后想了想觉得这可以转换成一个图的题. 我们把每个监视器看出点,然后遍历每个监视器跟它相交(相切,包含)的其他点,已经看一下这个圆会涉及到那些边界.然后会把路封死的组合便…