博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Codeforces 294D - Shaass and Painter Robot
阅读量:5886 次
发布时间:2019-06-19

本文共 1175 字,大约阅读时间需要 3 分钟。

思路:

可以用数学归纳法证明一个结论:整个棋盘黑白相间当且仅当边缘黑白相间。

分奇偶讨论又可得出边缘黑色格个数为n+m-2

这样就可以暴力模拟。

数组开不下保存边缘块有没有被访问,可以用map。

代码:

#include
using namespace std;#define ll long long#define pb push_back#define mem(a,b) memset(a,b,sizeof(a))const int N=1e5+5;const int INF=0x3f3f3f3f;map
mp[N];int main(){ ios::sync_with_stdio(false); cin.tie(0); int x,y,n,m,dx,dy; string s; cin>>n>>m>>x>>y; cin>>s; if(s[0]=='U')dx=-1; else dx=1; if(s[1]=='L')dy=-1; else dy=1; int tot=n+m-2; int cnt=0; ll ans=1;//原来的一格不要忘记 if(x==1||x==n||y==1||y==m){ tot--; mp[x][y]=1; } while(true){ cnt++; if(cnt>=5e5)return 0*puts("-1"); int dis=INF; if(dx==1)dis=min(dis,n-x); else dis=min(dis,x-1); if(dy==1)dis=min(dis,m-y); else dis=min(dis,y-1); ans+=dis; x+=dx*dis; y+=dy*dis; if(x==1)dx=1; else if(x==n)dx=-1; if(y==1)dy=1; else if(y==m)dy=-1; if(!mp[x][y]){ tot--; mp[x][y]=1; } if(!tot){ cout<
<

 

转载于:https://www.cnblogs.com/widsom/p/8350217.html

你可能感兴趣的文章
影响企业信息化成败的几点因素
查看>>
SCCM 2016 配置管理系列(Part8)
查看>>
struts中的xwork源码下载地址
查看>>
ABP理论学习之仓储
查看>>
我的友情链接
查看>>
CentOS图形界面和命令行切换
查看>>
HTML5通信机制与html5地理信息定位(gps)
查看>>
加快ALTER TABLE 操作速度
查看>>
PHP 程序员的技术成长规划
查看>>
python基础教程_学习笔记19:标准库:一些最爱——集合、堆和双端队列
查看>>
js replace,正则截取字符串内容
查看>>
作业2
查看>>
nginx的信号量
查看>>
云im php,网易云IM
查看>>
DEFERRED_SEGMENT_CREATION
查看>>
Ada boost学习
查看>>
开源 java CMS - FreeCMS2.3字典管理
查看>>
block,inline和inline-block概念和区别
查看>>
移动端常见随屏幕滑动顶部固定导航栏背景色透明度变化简单jquery特效
查看>>
javascript继承方式详解
查看>>