[ZOJ 3315] Runaway Robot [枚举]
来源:互联网 发布:韩服lol账号购买淘宝 编辑:程序博客网 时间:2024/04/30 04:13
给一个地图,机器人要从左上角走到右下角,机器人重复一定的指令序列,指令只包含向下走和向右走两种,问指令序列的最短长度。
枚举指令序列中向下和向右的个数,然后地图重叠过去。判断能否走到最后的终点,再由终点走到右下角。
感觉上复杂度是n^4的,并且直接判断TLE了...改成按照顺序枚举,先尝试指令序列短的,找到一个可行解就直接输出答案,然后300ms过了..
暂时没想到更好的解法...
#include <cstdio>#include <cstring>#include <algorithm>using namespace std;int n,m,ans;char c[210][210];bool a[210][210];bool b[211][211];void add(int x,int y,int nn,int mm) {for (int i=0;i<=nn;i++) {for (int j=0;j<=mm;j++) {if (c[i+x][j+y]=='X') a[i][j]=false;}}}void calans(int nn,int mm) {int i,j,tn=n-1,tm=m-1;for (i=0;i<=nn;i++) for (j=0;j<=mm;j++) {a[i][j]=true;b[i][j]=false;}while (tn>nn||tm>mm) tn-=nn,tm-=mm;if (tn<0||tm<0) return;for (i=0,j=0;i<n&&j<m;i+=nn,j+=mm) add(i,j,nn,mm);b[0][0]=true;for (i=0;i<=tn;i++) for (j=0;j<=tm;j++)if (b[i][j]) {if (a[i+1][j]) b[i+1][j]=true;if (a[i][j+1]) b[i][j+1]=true;}for (i=tn;i<n;i++)for (j=tm;j<=m;j++)if (b[i][j]) {if (a[i+1][j]) b[i+1][j]=true;if (a[i][j+1]) b[i][j+1]=true;}if (b[nn][mm]&&b[tn][tm]) if (ans==-1) ans=nn+mm;else ans=min(ans,nn+mm);}int updivide(int x,int y) {return x/y+(x%y!=0);}int main() {int i,j,l;while (scanf("%d%d",&m,&n)!=EOF) {memset(c,0,sizeof(c));for (i=0;i<n;i++) for (j=0;j<m;j++) scanf(" %c",&c[i][j]);ans=-1;for (l=2;l<n+m-1&&ans==-1;l++) {for (i=1;l-i>0&&ans==-1;i++) calans(i,l-i);}printf("%d\n",ans);}return 0;}
0 0
- [ZOJ 3315] Runaway Robot [枚举]
- runaway robot 逃亡机器人 zoj 3315
- zoj Runaway Robot
- Runaway Robot游戏通关算法实现过程总结
- zoj 1310 Robot
- ZOJ 3981 Balloon Robot
- Runaway Robot游戏过关通用算法设计并java语言实现
- zoj 1708 Robot Motion(简单)
- Zoj 3981 Balloon Robot【思维】
- zoj 3627#模拟#枚举
- ZOJ 1354(枚举,模拟)
- zoj 1403 Safecracker 枚举
- zoj 1403 简单枚举
- ZOJ 3981 Balloon Robot 【离线处理】
- ZOJ 1868 Airline Hub(枚举)
- zoj 1403 Safecracker(枚举)
- zoj 3630 Information (tarjan+枚举)
- ZOJ-2274(最大公约数 + 枚举)
- exit、_exit,return的区别
- 每日一dp(1)——Largest Rectangle in a Histogram(poj 2559)使用单调队列优化
- msp430f149+外设tlv61612位DA转换模块
- 【140810】VC2008实现VC.NET麻将游戏
- hdu 1421 搬寝室 (dp)
- [ZOJ 3315] Runaway Robot [枚举]
- AJAX基础知识
- Rails4.1:Active Record Basics
- awk技巧
- PKU 3468 线段树,线段树 第 3 天
- 开博纪念:雁过留声
- spin_lock与mutex_lock
- hdu 1009 FatMouse' Trade
- 坑爹的循环题