题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=4093

题意:题意基于ZOJ4092题意的基础上,给一个12*12的矩阵,矩阵中值为1的即这个点是墙,为0即为空地,为2即为空地上有一个垃圾。现在有6种操作,'U','D','L','R',表示向上下左右四个方向移动一步,如果下一步是墙就留在原地,'I'是停留原地,'P'表示捡起地上的垃圾,若地上无垃圾则不做操作,一个地方如果本来有垃圾后被拿走,那么值由2变到0,现在有一个长度为243的指令序列,若当前处于(i,j)位置上,那么定义x = 81*m[i][j]+27*m[i-1][j]+9*m[i+1][j]+3*m[i][j-1]+1*m[i][j+1],然后取指令序列的第x+1个指令进行操作。题目没有输入,后台数据会给出1000个这样的矩阵,保证只有周围一圈是墙,里面10*10的矩阵都是0或2,且各50个,随机等概率分布,现在题目要求一个长为243的指令序列,使得这一千个矩阵(人走的起点均为(2,2))中各走两百步之后所能捡到的垃圾数不小于原垃圾总数的95%

思路:首先,可以发现‘I’这个指令啥用没有,然后发现可以从1~243遍历这个指令序列,每一个序号只对应一种情况,比如3号指令,一定对应当前位为0,上下左均为0,右边为2的情况(如下图)这样一个位置(对81取模,再对27取模...得到)

  0  
0 0 2
  0  

那么可以得出第i个指令的规律:

1.i/81 == 1时,该种情况不可能出现,指令任意即可

2.i/81 == 2时,当前有垃圾,一定是先捡垃圾更优,所以指令为‘P’

3.i/81==0时,再进行分类:

若该情况是四个方向上有1的,那么即是沿着墙的,先暂定(10*10)沿墙顺时针走,在此基础上,若沿墙走的点周围有                垃圾,先往有垃圾的方向走。

若位置周围全都是空地,那么就默认往右走

若位置周围超过一个地方有垃圾,那么方向的选择顺序为上右左下

代码:

#include<iostream>
#include <cstdio>
#include<cstring>
#include<algorithm>
#include<map>
#include<functional>
#include <unordered_map>
#include<queue>
#include<cmath>
#include<unordered_map>
#include<fstream>
#include<ctime>
using namespace std;typedef long long ll;
const ll mod = 1e9 + 7;char s[500];
int n = 12;int main()
{memset(s, 0, sizeof(0));for (int i = 1; i <= 243; i++){s[i] = 'P';}for (int j = 1; j <= 243; j++){int k[5];int i = j;memset(k, 0, sizeof(k));if (i / 81)continue;if (i/27)//上{if (i / 27 == 2){s[j] = 'U';continue;}elsek[0] = 1;}i = j % 3;//右if (i == 2){s[j] = 'R';continue;}if (i == 1)k[3] = 1;i = j%9;//左if (i / 3){if (i / 3 == 2){s[j] = 'L';continue;}elsek[2] = 1;}i = j % 27;//下if (i / 9){if (i / 9 == 2){s[j] = 'D';continue;}elsek[1] = 1;}if (k[0] && k[1]){s[j] = 'R';}else if(k[2] && k[1]){s[j] = 'U';}else if(k[0] && k[3]){s[j] = 'D';}else if (k[1] && k[3]){s[j] = 'L';}else if (k[0]){s[j] = 'R';}else if (k[3]){s[j] = 'D';}else if (k[1]){s[j] = 'L';}else if (k[2]){s[j] = 'U';}else{s[i] = 'R';}}s[244] = '\0';for (int i = 243; i > 1; i--)s[i] = s[i - 1];s[1] = 'R';printf("%s\n", s + 1);
}

ZOJ 4093 浙大校赛D题 Robot Cleaner II(思维+构造题)相关推荐

  1. php编程数学思维题,一年级数学:思维训练题(13套),打印每周一练,益智提升专用...

    一年级数学:思维训练题(13套),打印每周一练,益智提升专用! 众所周知,思维对于数学的学习是最为关键的,尤其是在小学阶段,需要趁早的培养孩子的逻辑思维能力.思维不是凭空想象,而是要依据手里的题目,能 ...

  2. 【CodeForces - 289C】Polo the Penguin and Strings (水题,字符串,思维构造,有坑)

    题干: Little penguin Polo adores strings. But most of all he adores strings of length n. One day he wa ...

  3. Algorithm:数学建模大赛(国赛和美赛)的简介/内容、数学建模做题流程、历年题目类型及思想、常用算法、常用工具之详细攻略

    Algorithm:数学建模大赛(国赛和美赛)的简介/内容.数学建模做题流程.历年题目类型及思想.常用算法.常用工具之详细攻略 目录 国内数学建模大赛简介 1.本科生数学建模大赛 2.研究生数学建模大 ...

  4. 3位水仙花数计算pythonoj_Python解答蓝桥杯省赛真题之从入门到真题

    若发现此文章消失,则是在等待审核中,稍等一会儿即可显示,谢谢. 另外,我会尽量晚上上传更新题目. 此文章太长了,导致MD编辑器很卡,另写了一篇接续 传送门 Python解答蓝桥杯省赛真题之从入门到真题 ...

  5. 第十三届蓝桥杯省赛 python B组复盘(三道代码题全AC居然省一了)

    第十三届蓝桥杯省赛 python B组复盘(三道代码题全AC居然省一了)

  6. BUUCTF Misc 穿越时空的思念 [ACTF新生赛2020]outguess [HBNIS2018]excel破解 [HBNIS2018]来题中等的吧

    目录 穿越时空的思念 [ACTF新生赛2020]outguess [HBNIS2018]excel破解 [HBNIS2018]来题中等的吧 穿越时空的思念 下载文件 使用Audacity打开 点击图示 ...

  7. 中石油训练赛 - 姓氏(思维+水题)

    题目描述 在一个很大的课室里,里面有很多学生在听课.L老师挑选了其中的N个不同的学生起立回答问题,L老师对起立的每一个学生都是问同样的问题:"在本课室里,和你同姓的学生有多少人(不包括你自己 ...

  8. 刷了几千道算法题,我私藏的刷题网站都在这里了

    作者 | Rocky0429 来源 | Python空间(ID: Devtogether) 遥想当年,机缘巧合入了 ACM 的坑,周边巨擘林立,从此过上了"天天被虐似死狗"的生活. ...

  9. 小学生计算机编程题,真题|小学组倒数第二道编程题,做不出来罚你点赞三遍!...

    原标题:真题|小学组倒数第二道编程题,做不出来罚你点赞三遍! 十年前,当我们还是小学生的时候,碰到电脑你们都会干什么? 是熟练地在网址栏输入www.4399.com,然后一个接一个的点开网页小游戏,还 ...

  10. 【竞赛篇-新苗结题】新苗拿什么结题?新苗结题成果形式与结题验收书撰写

    目录 新苗结题概况 结题成果形式(任一即可) 结题申报书撰写 注:以下皆为浙财标准,其他高校可适当参考.有一些学校的要求可能会比较高,建议多去问问校团委老师. 新苗详细全过程见:浙江省新苗人才计划将近 ...

最新文章

  1. 一文读懂神经网络(附解读案例)
  2. Tab页面手势滑动切换以及动画效果
  3. 电脑上怎么做pdf文件_PDF压缩文件怎么压缩最小?请收好这些PDF压缩方法
  4. 关于用函数指针参数申请动态内存的问题
  5. qq浏览器如何进入私密 qq浏览器怎样进入私密
  6. 容器编排技术 -- Kubernetes kubectl create clusterrole 命令详解
  7. java 页面传值_java-jsp springmvc-controller 传值到页面的方法
  8. 不再“挤牙膏”!英特尔公布技术路线图,豪迈放言:“将在 2025 年夺回芯片性能桂冠!”...
  9. Python入门--列表元素的修改
  10. [转载] python3 闭包
  11. 读书笔记程序员的自我修养 0
  12. 《Flutter 从0到1构建大前端应用》读后感—第9章【插件与混合工程】
  13. nginx 代理springmvc到二级目录_详解Nginx从入门到实践
  14. 2021-2027全球与中国X射线检测系统市场现状及未来发展趋势
  15. Excel函数公式大全—VLOOKUP函数
  16. Mac下移动硬盘的使用
  17. malloc失败的一个原因
  18. zepto 的touch 、event
  19. C++将小数化成分数
  20. linux之shell语言

热门文章

  1. 谷歌浏览器如何设置兼容
  2. bootstrap入门-1.可视化布局
  3. 功率和能量换算公式、如何换算,W和J如何转换,power和energy转换
  4. 什么叫做云计算?云计算基础学习路线
  5. canvas绘制五角星
  6. 《树莓派项目实战》第四节 用LED点阵显示爱心
  7. 文献综述是什么?怎么写?内附简洁模板
  8. arduino/mixly 智纳捷TTS语音合成模块进阶一
  9. 互联网日报 | 1月27日 星期三 | 支付宝集五福活动2月1日开启;华为否认“出售手机业务”传闻;中国联通自有手机品牌发布...
  10. 浅谈如何根治慢性扁桃体炎-个人经验总结