CodeForces - 123E Maze】的更多相关文章

[题目链接] http://codeforces.com/problemset/problem/123/E [题目大意] 给出一棵,给出从每个点出发的概率和以每个点为终点的概率,求出每次按照dfs序从起点到达终点的期望. [题解] 首先对于期望计算有X(x,y)=X(x)*X(y),所以对于每次dfs寻路只要求出其起点到终点的期望步数,乘上起点的概率和终点的概率即可.对于一个固定起点和终点的dfs寻路,我们可以发现如果一个点在必要路径上,那么这条路被走过的期望一定为1,如果不在必要路线上,那么走…
http://codeforces.com/problemset/problem/123/E 题目翻译:(翻译来自: http://www.cogs.pw/cogs/problem/problem.php?pid=1734) 一个迷宫是一棵树(即一张无向图,其中任意两点之间仅有一条路径).迷宫的起点和终点都按照某种概率随机选取.人们会在迷宫中用深度优先搜索的方法搜寻终点.如果有许多条可能的路径,会等概率地选取一条.考虑如下伪代码: DFS(x) if x == exit vertex then…
A. Maze 题目链接:http://codeforces.com/contest/377/problem/A time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output Pavel loves grid mazes. A grid maze is an n × m rectangle maze where each cell is e…
Maze Pavel loves grid mazes. A grid maze is an n × m rectangle maze where each cell is either empty, or is a wall. You can go from one cell to another only if both cells are empty and have a common side. Pavel drew a grid maze with all empty cells fo…
题目链接 题意:给一个由“.”组成的联通区域,求再添加k个‘#'以后还是联通区域的方案. 分析:做题的时候犯二了,用DFS,一直搜到边缘,然后从边缘依次往回 回溯,回溯的过程中填充’#‘ 一直填充k个. 因为在搜索的过程中,一直都是vis[][]标记的,所以时间复杂度最多只是搜了所有的边,即500*500*4. DFS搜索的时间复杂度,取决于边的个数. #include <iostream> #include <cstdio> #include <cstring> #i…
题意:指令“R”机器人会向右走一步,“L”是向左.起初机器人在0位置,可以在除了0以外的任何位置放障碍,如果机器人的指令将使它走到障碍上,那这一步他会保持不动.要求让机器人最终结束的那一步一定只走过一次,也就是最后一次,这样称为完成指令.求在放障碍最少的情况下,能使机器人完成指令的方案数. 方法: 我去,这题意略长啊. 最开始从细节分析,然后枚举情况,感觉挺简单的,然后……就没有然后了……后面枚举情况的时候,好复杂,感觉怎么都想不全(至少短时间想不全诶) 然后看解题宝宝.(是报告)额,原来可以用…
A. Maze 题目连接: http://codeforces.com/contest/377/problem/A Description Pavel loves grid mazes. A grid maze is an n × m rectangle maze where each cell is either empty, or is a wall. You can go from one cell to another only if both cells are empty and h…
题目链接:http://codeforces.com/problemset/problem/377/A 题解: 有tot个空格(输入时统计),把其中k个空格变为wall,问怎么变才能使得剩下的空格依然为连通的.把问题反过来,其实就是求tot-k的连通图.dfs:在搜索过的空格中做个标记,同时更新连通个数. 代码如下: #include<cstdio>//hdu3183 CodeForces 377A dfs #include<cstring> #include<cmath&g…
D - Infinite Maze We've got a rectangular n × m-cell maze. Each cell is either passable, or is a wall (impassable). A little boy found the maze and cyclically tiled a plane with it so that the plane became an infinite maze. Now on this plane cell (x,…
197D - Infinite Maze 思路:bfs,如果一个点被搜到第二次,那么就是符合要求的. 用vis[i][j].x,vis[i][j].y表示i,j(i,j是取模过后的值)这个点第一次被搜到的位置,用vis[(next.x%n+n)%n][(next.y%m+m)%m]标记,因为位置可以为负数(绝对值很大的负数). 代码: #include<bits/stdc++.h> using namespace std; ; const int INF=0x3f3f3f3f; char Ma…
We've got a rectangular n × m-cell maze. Each cell is either passable, or is a wall (impassable). A little boy found the maze and cyclically tiled a plane with it so that the plane became an infinite maze. Now on this plane cell (x, y) is a wall if a…
Discription A maze is represented by a tree (an undirected graph, where exactly one way exists between each pair of vertices). In the maze the entrance vertex and the exit vertex are chosen with some probability. The exit from the maze is sought by D…
[题目链接]:http://codeforces.com/problemset/problem/196/B [题意] 给你一个n*m的棋盘; 然后你能够无限复制这个棋盘; 在这个棋盘上你有一个起点s; 然后问你,你能不能从这个起点s开始一直走无限远; [题解] 考虑两个不同棋盘上的点(x1,y1),(x2,y2)(即复制出的另外一个棋盘); 假设他们在第一个棋盘上对应的投影x%n,y%m是相同的; 且它们都能由起点S到达; 即S能到达这两个点; 则可知; 可以从S到达其中的一个点(x1,y1);…
题目链接:http://codeforces.com/contest/1293/problem/C 题目:给定一个 2*n的地图,初始地图没有岩浆,都可以走, 给定q个询问,每个询问给定一个点(x,y),每个询问有以下作用: (1)如果该点可走,则变为不可走 (2)如果该点不可走,则变为可走 问,每个询问作用后,还能否从(1,1)走到(2,n). 思路:我们可以这么想: 如果第二层有个无法走的点,那么只要该点上方三个点任意一个点不可走,则该地图无法走到终点. "如果第二层有个无法走的点,那么只要…
Infinite Maze time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output We've got a rectangular n × m-cell maze. Each cell is either passable, or is a wall (impassable). A little boy found the maze…
题目 NEKO#ΦωΦ has just got a new maze game on her PC! The game's main puzzle is a maze, in the forms of a \(2×n\) rectangle grid. NEKO's task is to lead a Nekomimi girl from cell \((1,1)\) to the gate at \((2,n)\) and escape the maze. The girl can only…
这题犯了一个很严重的错误,bfs 应该在入队操作的同时标记访问,而不是每次只标记取出的队首元素. 题目链接:https://codeforces.com/contest/1365/problem/D 题意 有一个 $n \times m$ 的迷宫,迷宫有四种方格: '.' 空方格 '#' 墙 'B' 坏人 'G' 好人 人与人间可以通行,人与墙间不能,可以把任意空方格变为墙,问能否所有好人可以到达 $(n, m)$ 但所有坏人不能. 题解 无解有两种情况: 坏人与好人相邻 在每个坏人相邻的四个方…
题意:给出n*m的矩阵,矩阵由'.'和'#'组成,再给出k,表示需要在'.'处加k堵墙,使得剩下的'.'仍然是连通的 先统计出这个矩阵里面总的点数'.'为sum 因为题目说了一定会有一个解,所以找到一个'.',就开始搜,搜到sum-k个连通的点的时候跳出,剩下的没有访问过的点就全部填成墙 #include<iostream> #include<cstdio> #include<cstring> #include <cmath> #include<sta…
#include <stdio.h> #include <string.h> #include <iostream> #include <string> #include <math.h> #include <algorithm> #include <vector> #include <stack> #include <queue> #include <set> #include <…
题目大意: 有一个2*n的图 NEKO#ΦωΦ要带领mimi们从(1,1)的点走到(2,n)的点 每次会操作一个点,从可以通过到不可以通过,不可以通过到可以通过 每操作一次要回答一次NEKO#ΦωΦ能不能带领他们走到那里 解题思路: 用cnt记录不能走的种类数两个数组,分别对应r为1和r为2值用0和1表示能通过和不能通过如果当前操作的是点c如果操作完之后这个点的值变成了0(可以通过了)那么就考虑另外一个r的数组的 c-1 c c+1 三个点的情况如果三个点满足题意(大于等于1且小于等于n)并且点…
[题目链接] [题目大意] 有一个2 ∗ n的地图,小女孩从(1,1)想移动到(2,n) 有q次询问,每次询问更改一个格子状态(是否可以通过) 只能上下左右移动而不能斜着移动,问每次操作后,是否可以移动到(2,n) [Input] 第一行n,q (数据范围1e5) 2 * n表示图的大小,q表示更改次数 以下q行,每行输入x,y表示更改点的坐标 [Output] "Yes" or "No" [Example] input 5 5 2 3 1 4 2 4 2 3 1…
题目大意 vjudge链接 共两行,从(1,n)到(2,n). 每过一个时刻会有一个位置的状态变化,从能到达这个位置变成不能到达,或从不能到达变成能到达,问在每个时刻中是否能从起点到终点. 数据范围 2≤n≤105,询问1≤q≤105 样例输入 5 52 31 42 42 31 4 样例输出 YesNoNoNoYes 思路 若a[1][y]存在障碍的话,需要a[2][y-1]或a[2][y]或a[2][y+1]存在障碍才无法通过. 若a[2][y]存在障碍同理. 因此两两一组,用cnt计数,存在…
题意:有一个\(2\)X\(n\)的矩阵,你想从\((1,1)\)走到\((2,n)\),每次可以向上下左右四个方向走,但在某些时间段某个点会被堵住,如果已经被堵住,那么即恢复正常,每次对某个点操作,操作后询问是否能走到终点. 题解:只有当第一层和第二层被堵的点连通时才会到不了终点,比如\((x,y)\)和\({(x+1,y),(x+1,y-1),(x+1,y+1)}\).所以我们记录当前给的点的另外一层所对应的三个点的贡献,然后判断一下直接输出答案就好了,思路简单,具体看代码吧. 代码: in…
### 题目大意: 在一个 $n * m$ 的矩阵中,有空地.坏人.好人和墙.你可以将空地变成墙来堵住坏人.$(n, m)$为出口,是否存在一个方案使得矩阵中所有好人能够走到出口,而所有坏人不能通过出口,相应的输出$Yes$ 和 $No$. ### 思路: 1.预处理:如果坏人和好人相邻,那么坏人一定可以走到隔壁好人,再通过好人的路径走到终点,所以不符合, 输出$No$; ​ 如果当前方格为坏人,我们只有将他四周都堵住,他才能不会走到出口, 即将周围空地变成墙. 2.试想一下,如何挨个判断好人是…
题目传送门 /* 题意:告诉起点终点,踩一次, '.'变成'X',再踩一次,冰块破碎,问是否能使终点冰破碎 DFS:如题解所说,分三种情况:1. 如果两点重合,只要往外走一步再走回来就行了:2. 若两点相邻, 那么要不就是踩一脚就破了或者踩一脚走开再走回来踩一脚破了:3. 普通的搜索看是否能到达, 若能还是要讨论终点踩几脚的问题:) DFS 耗时大,险些超时,可以用BFS来做 */ #include <cstdio> #include <algorithm> #include &l…
 Guess Your Way Out! II Time Limit:2000MS     Memory Limit:262144KB     64bit IO Format:%I64d & %I64u Submit Status Practice CodeForces 558D Description Amr bought a new video game "Guess Your Way Out! II". The goal of the game is to find an…
题目传送门 /* BFS:三维BFS,坐标再加上步数,能走一个点当这个地方在步数内不能落到.因为雕像最多8步就会全部下落, 只要撑过这个时间就能win,否则lose */ #include <cstdio> #include <algorithm> #include <queue> #include <vector> #include <cstring> using namespace std; ; const int INF = 0x3f3f3…
Codeforces Round #601 (Div. 2) ---- 比赛传送门 周二晚因为身体不适鸽了,补题补题 A // http://codeforces.com/contest/1255/problem/A /* 签到题 简单的贪心题 本考虑过是否有先小于再加上去会更小的情况 但两种情况恰好步数是一样的 */ #include<iostream> #include<cstdio> #include<cmath> using namespace std; int…
链接:https://codeforces.com/contest/1293 A. ConneR and the A.R.C. Markland-N 题意:略 思路:上下枚举1000次扫一遍,比较一下上下最近的房间 AC代码: #include<iostream> #include<cstdio> #include<algorithm> #include<cmath> #include<map> #include<utility> #…
上一次我们拿学校的URP做了个小小的demo.... 其实我们还可以把每个学生的证件照爬下来做成一个证件照校花校草评比 另外也可以写一个物理实验自动选课... 但是出于多种原因,,还是绕开这些敏感话题.. 今天,我们来扒一下cf的题面! PS:本代码不是我原创 1. 必要的分析 1.1 页面的获取 一般情况CF的每一个 contest 是这样的: 对应的URL是:http://codeforces.com/contest/xxx 还有一个Complete problemset页面,它是这样的:…