LGP4588[JSOI2018]扫地机器人】的更多相关文章

题解 需要先说明一点东西: 1 同一副对角线方向相同,共有$gcd(n,m)$条不同的副对角线,机器人的行为是一个$gcd(n,m)$的循环:: 如果左上方是$(1,1)$,容易看出所有的路径是从左或上面连向右或下面并且紧密排列,所以所有副对角线上方向相同: 有些副对角线是间隔开的只需要将网格重复几次,那么一条副对角的特征就可以用$x+y+kn+km$ 由斐蜀定理可知一共有$gcd(n,m)$条: 并且每次一定是从一条对角线$x$走向对角线$x+1$,所以循环节为$gcd(n,m)$ 2 $n*…
[BZOJ5318][JSOI2018]扫地机器人(动态规划) 题面 BZOJ 洛谷 题解 神仙题.不会.... 先考虑如果一个点走向了其下方的点,那么其右侧的点因为要被访问到,所以必定只能从其右上方的点走过来.同理,如果这个点向右,那么其下方的点就只能从其左下方的点向右走过来. 因此我们可以确定所有平行于副对角线的斜线上的位置的方向都是相同的. 考虑\(n=m\)的情况,从一个点开始无论向右开始向下,都只会走到下一条对角线上,因此这个过程本质上就是就是固定了一个向下向右的序列,然后循环这个操作…
Given a robot cleaner in a room modeled as a grid. Each cell in the grid can be empty or blocked. The robot cleaner with 4 given APIs can move forward, turn left or turn right. Each turn it made is 90 degrees. When it tries to move into a blocked cel…
题意: 有一个房间的形状是多边形,而且每条边都平行于坐标轴,按顺时针给出多边形的顶点坐标 还有一个正方形的扫地机器人,机器人只可以上下左右移动,不可以旋转 问机器人移动的区域能不能覆盖整个房间 分析: 官方题解 #include <cstdio> #include <cmath> #include <algorithm> using std::abs; using std::swap; const int maxn = 1010; struct Point { int…
扫地机器人 时间限制: 1.0s 内存限制: 512.0MB 本题总分:25 分 [问题描述] 小明公司的办公区有一条长长的走廊,由 N 个方格区域组成,如下图所 示. 走廊内部署了 K 台扫地机器人,其中第 i 台在第 Ai 个方格区域中. 已知扫地机器人每分钟可以移动到左右相邻的方格中,并将该区域清扫干 净. 请你编写一个程序,计算每台机器人的清扫路线,使得 它们最终都返回出发方格, 每个方格区域都至少被清扫一遍, 从机器人开始行动到最后一台机器人归位花费的时间最少. 注意多台机器人可以同时…
Given a robot cleaner in a room modeled as a grid. Each cell in the grid can be empty or blocked. The robot cleaner with 4 given APIs can move forward, turn left or turn right. Each turn it made is 90 degrees. When it tries to move into a blocked cel…
题目:https://loj.ac/problem/2550 只会写20分的搜索…… #include<cstdio> #include<cstring> #include<algorithm> using namespace std; ; int n,m,ans; bool b[N][N],vis[N][N]; void dfs(int x,int y,bool fx,int lj) { ; ; if(vis[x][y]) { &&y==) { ; ;…
[抄题]: Given a robot cleaner in a room modeled as a grid. Each cell in the grid can be empty or blocked. The robot cleaner with 4 given APIs can move forward, turn left or turn right. Each turn it made is 90 degrees. When it tries to move into a block…
题解 我不会打表找规律啊QAQ 规律就是 对于\(n = m\)我们每一条左下到右上的对角线上的点的走法都是一样的且每n步一个轮重复 对于\(n != m\)我们找到最大公约数\(d\),在每个\(d * d\)的方格里满足左上到右下的对角线点的走法一样且d轮一个重复 然后枚举\(dx\),\(dy = d - dx\),我们要满足\(gcd(n,dx) == 1\)且\(gcd(m,dy) == 1\)这时是一个合法路径 显然有一些点是必须要经过的,我们把这些点遍历一遍,同时算出\(fir[i…
在本题当中为了方便,我们将坐标范围改至 \((0 \sim n - 1, 0 \sim m - 1)\),行走即可视作任意一维在模意义下 \(+1\). 同时,注意到一个位置只能经过一次,则可以令 \(a_{x, y}\) 为 \((x, y)\) 这个位置往外走是向下还是向,方便考察. 首先考虑这个问题的方案数,此类网格图行走的问题一般需要考察对角线的特殊性质. 观察 1:\(\forall (x, y)\),若 \(a_{(x - 1) \bmod n, y} \ne a_{x, (y -…