CF 1064 D. Labyrinth】的更多相关文章

D. Labyrinth http://codeforces.com/contest/1064/problem/D 题意: n*m的矩阵,只能往左走l次,往右走r次,上下走无限制,问能走到多少个点. 分析: 01bfs. 直接bfs会出现问题,因为一旦打上标记后,下一次无法访问到,但是下一次的状态还更优. 像这样的样例: ..... .***. ...*. *.**. *.**. *.... 做法:用双端队列,向上走或向下走时就push到队头,向左走或向右走时就push到队尾(其实就是先处理一列…
D - Labyrinth 对于位置(i,j), j - c = R - L = const(常数), 其中R表示往右走了几步,L表示往左走了几步 所以R越大, L就越大, R越小, L就越小, 所以只需要最小化L和R中的其中一个就可以了 由于每次变化为0或1,所以用双端队列写bfs, 保证最前面的值最小, 简化版的dijkstra 不过看到好多没写双端队列的也过了...... 代码: #pragma GCC optimize(2) #pragma GCC optimize(3) #pragma…
由于上下走不限制,所以按照贪心,我们应该尽可能走上下方向. 我们可以开一个双端队列,并认为每次提取队首的时候得到的是到达该点的最优策略.(这个一定是唯一的,因为不可能向右走几格,然后再退回去. ) 那么如果向上下走是不损失的,所以将上下的格子推进队首,优先扩展,然后将左右推进队尾,最后扩展. 这个贪心是正确的,可以保证每一个格子被扩展时都是最优策略. #include<bits/stdc++.h> #define maxn 2003 using namespace std; void setI…
传送门 解题思路 看上去很简单,\(bfs\)写了一发被\(fst\)...后来才知道好像一群人都被\(fst\)了,这道题好像那些每个点只经过一次的传统\(bfs\)都能被叉,只需要构造出一个一块一直上下走,还有一块一直左右走,上下走走到左右走的格子里更优,但已经更新不了,就\(GG\)了.后来学习了一下\(rank1\)的代码,其实用一个双端队列就可以避免这个问题,每次把上下走的放到队头,左右走的放到队尾.这样的话每次左右遍历时一定是最优的. 代码 #include<iostream> #…
Labyrinth http://codeforces.com/problemset/problem/1064/D time limit per test 2 seconds memory limit per test 512 megabytes input standard input output standard output You are playing some computer game. One of its levels puts you in a maze consistin…
D. Labyrinth 题目链接:https://codeforces.com/contest/1064/problem/D 题意: 给出一个n*m的矩阵以及人物的起点,并且给出x,y,分别代表这个人向左最多走x步,向右最多走y步. 矩阵中存在障碍,问这个人最多能到达多少数量的格子. 题解: 就是一个bfs...只是要稍微剪枝一下,如果发现当前这个点所到达的格子已经被之前的一个点到达过,当且仅当当前点的x或y至少一个比之前到达的点大时,就将这个点入队. 只有这样才能保证解最优. 代码如下: #…
题解 CF1063B [Labyrinth] 完了我发现我做CF的题大部分思路都和别人不一样qwq 这道题其实很水,不至于到紫题 我们只要bfs一下,向四个方向剪下枝,就A了(好像还跑的蛮快?) 是一道锻炼代码能力的好题 Code: #include <bits/stdc++.h> #define check(x, y) (x >= 0 && x < n && y >= 0 && y < m)//判断是否越界 const…
凌晨收到同事电话,反馈应用程序访问Oracle数据库时报错,当时现场现象确认: 1. 应用程序访问不了数据库,使用SQL Developer测试发现访问不了数据库.报ORA-12570 TNS:packet reader failure 2. 使用lsnrctl status检查监听,一直没有响应,这个是极少见的情况. 3. 检查数据库状态为OPEN,使用nmon检查系统资源.如下一张截图所示,CPU利用率不高,但是CPU Wait%非常高.这意味着I/O不正常.可能出现了IO等待和争用(IO…
 cf之路,1,Codeforces Round #345 (Div. 2) ps:昨天第一次参加cf比赛,比赛之前为了熟悉下cf比赛题目的难度.所以做了round#345连试试水的深浅.....       其实这个应该是昨天就写完的,不过没时间了,就留到了今天.. 地址:http://codeforces.com/contest/651/problem/A A. Joysticks time limit per test 1 second memory limit per test 256…
A.Peter and Snow Blower(计算几何) 给定一个点和一个多边形,求出这个多边形绕这个点旋转一圈后形成的面积.保证这个点不在多边形内. 画个图能明白 这个图形是一个圆环,那么就是这个点距离多边形边缘最远的距离形成的圆面积减去这个点距离多边形边缘最近的距离形成的圆面积.我们可以得出距离最远的点一定是多边形的顶点.而距离最近的点不一定是多边形的顶点,但是在多边形的边上.我们用勾股定理判断点与每条边形成的三角形的两边角.如果有一个边角是钝角,则表示距离最近的点是顶点.如果都是锐角,则…