推动盒子前进的一个运算问题,怎么利用C语言编程的特点的思路去实现代码编制?

Problem Description
PusherBoy is an online game http://www.hacker.org/push . There is an R * C grid, and there are piles of blocks on some positions. The goal is to clear the blocks by pushing into them.

You should choose an empty area as the initial position of the PusherBoy. Then you can choose which direction (U for up, D for down, L for left and R for right) to push. Once the direction is chosen, the PusherBoy will walk ahead until he met a pile of blocks (Walking outside the grid is invalid). Then he remove one block from the pile (so if the pile contains only one block, it will become empty), and push the remaining pile of blocks to the next area. (If there have been some blocks in the next area, the two piles will form a new big pile.)

Please note if the pusher is right up against the block, he can't remove and push it. That is, there must be a gap between the pusher and the pile. As the following figure, the pusher can go up, but cannot go down. (The cycle indicates the pusher, and the squares indicate the blocks. The nested squares indicate a pile of two blocks.)

And if a whole pile is pushed outside the grid, it will be considered as cleared.

Input
There are several test cases in each input. The first two lines of each case contain two numbers C and R. (R,C <= 25) Then R lines follow, indicating the grid. '.' stands for an empty area, and a lowercase letter stands for a pile of blocks. ('a' for one block, 'b' for two blocks, 'c' for three, and so on.)

Output
Output three lines for each case. The first two lines contains two numbers x and y, indicating the initial position of the PusherBoy. (0 <= x < R, 0 <= y < C). The third line contains a moving sequence contains 'U', 'D', 'L' and 'R'. Any correct answer will be accepted.

Sample Input
3
7
...
...
.b.
...
...
.a.
...

Sample Output
4
1
UDU

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
C语言编程的思路和主要代码(重要)
我个人认为适合无论是考国家二级证同学还是从事C语言编程的人,也希望对你们有用!
怎么实现一个卷积运算
神经网络中的卷积运算具有较快的运算速度,现有的神经网络中所需要的卷积运算已经写的比较方便了,即便要写新的网络层,继承下来这些类也差不多满足所需要的要求。但有的时候不尽然,比如我需要运算一个固定卷积核的卷积运算。 下面通过numpy来实现,在贴代码之前, 首先先说一下卷积快速运算的逻辑 快速的实现卷积运算,是将所需要的卷积核和所卷积核所对应的元素拉伸到一维向量,然后所有需要卷积计算的位置都准备
C语言编程实现俄罗斯方块代码
这是我自己编写的利用C语言实现俄罗斯方块游戏的源代码,简单实用,大家可以下载后自己修改变成自己的源代码
qwb去面试 思路+代码
Problem G: qwb去面试 Time Limit: 1 Sec  Memory Limit: 128 MB Submit: 1790  Solved: 301 [Submit][Status][Web Board] Description 某一天,qwb去WCfun面试,面试官问了他一个问题:把一个正整数n拆分成若干个正整数的和,请求出这些数乘积的最大值。 qwb比较猥
利用C语言编程
编写一个程序,将一个二、五、八或十六进制整数与十进制数相互转换。谢谢!
map实现多项式运算的思路!
最近在做一个map实现多项式的练习,在实现细节上除了点问题。想向各位前辈请教一下实现的思路。
位移运算 特点
一个数异或同一个数两次还是这个数 加密计算 左移几位就是该数据乘以2的几次方。可以完成2的次幂运算 3《2=12—3x2的2次方 右移就是该数据除以2的几次幂 6》1=3 6/2(1)=3 对于高位出现的空位,原来高位是什么;就用什么补 >>>无符号右移:数据进行右移时高位出现空位时,都用零补
开发游戏盒子的思路
要求: 最近做到一个开发游戏盒子的项目,就像快玩客户端那样,公司这边有游戏网站----包含许多小游戏的网站。现在就是想开发一个客户端,直接把网页里面的游戏相关的东西复制到客户端上面来。rnrn自己的想法:想了许久,也在网上找了许多的资料,最后觉得游戏盒子客户端不就是一个浏览器吗,我用过快玩,但是又不是一个纯粹的浏览器,如果是一个浏览器那么用vc很快完成。 rnrn这里面涉及到vc客户端和网页的js交互的知识。比如我想用vc对话框来调用http://www.kuaiwan.com/flash.html?from=desktop这个网页的一部分的内容,那么我应该怎样去实现呢?rnrn快玩客户端的截图rn[img=https://img-bbs.csdn.net/upload/201402/24/1393207503_751844.jpg][/img]rnrn[img=https://img-bbs.csdn.net/upload/201402/24/1393207543_707778.jpg][/img]rnrn如果大家有什么好的思路或者想法都可以说说,只要参与,都给分。
空值的运算特点
在进行数据库查询即字段之间统计计算时, 不可避免的要涉及到空值的计算, 空值被查询出来就如下图所示一般 没有任何值, 注意, 虽然它没有任何值但不代表它等于0, 实际上, 空值的特性跟0十分相似.如图 该sql语句中, 将salary字段乘以commission_pct字段, 我们可以看到, 当salary有值, commission_pct为空值时, 它们相乘的结果仍然是空值, 同样, 相除...
实现一个简单的盒子
&amp;lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.01 Transitional//EN&quot; &quot;http://www.w3.org/TR/html4/loose.dtd&quot;&amp;gt; &amp;lt;html lang=&quot;en&quot;&amp;gt; &amp;lt;head&amp;gt;     &amp;lt;meta http-equiv=&quot;Content-Type&quot; cont
运算思路?
前段日子我发了一帖子,寻求1x2x3x4x5x6x7x8x9x10x11x12x13……直到乘以1000的思路,感谢relive(六道轮回,无想转生)给我代码,那段时间我比较忙,直到现在才抽空来研究代码,我想肯定是把1x2x3x4x5x6x7x8x9x10x11x12x13……这乘法运算演变成append()此函数的功能样,在字符后面增加字符,我有些代码实在想不通,比如 int mantissa = product % 10;rn carry = product / 10;rn这两段,,当然整体代码实现起来的思路更是不懂,现在想请高手们给我下面这段代码实现的思路,,只需思路,呵呵rnrnclass for_4rnpublic static void main(String ss[])rnStringBuffer rs = new StringBuffer("1");rn for (int i = 1; i <= 1000; i++) rn StringBuffer tmp_rs = new StringBuffer();rn int carry = 0;rn for (int j = 0; j < rs.length(); j++) rn char subnum = rs.charAt(j);rn int isubnum = Integer.parseInt(String.valueOf(subnum));rn int product = i * isubnum + carry;rn int mantissa = product % 10;rn carry = product / 10;rn tmp_rs.append(mantissa);rn rn if (carry != 0)rn tmp_rs.append(carry);rn rs = tmp_rs;rn rn System.out.println(rs.reverse());rnrn
利用位与运算简化代码
利用位与运算简化代码题目及代码来源:《数据结构习题解析(第三版)》,邓俊辉编著,ISBN: 978-7-302-33065-3题目要求:改进教材中的countOnes()算法,使得时间复杂度降至O(countOnes(n)),线性正比于数位1的实际数目/*教材算法*/int countOnes(unsigned int n) { //统计整数二进制展开中数位1的总数:O(logn) int
有.........前进吗? 怎么前进...
ctrl+e撤消过头了....
利用栈实现加法运算
例子: [&quot;2&quot;, &quot;1&quot;, &quot;+&quot;, &quot;3&quot;, &quot;*&quot;] -&amp;gt; ((2 + 1) * 3) -&amp;gt; 9 [&quot;4&quot;, &quot;13&quot;, &quot;5&quot;, &quot;/&quot;, &quot;+&quot;] -&amp;gt; (4 + (13 / 5)) -&amp;gt; 6 题意为 参数 a,b 运算符
利用JavaScript实现加减乘除运算
利用JavaScript实现加减乘除运算
利用C#实现卷积运算
用C#实现卷积 写了一个方法,可以进行调用
利用栈实现表达式的运算
表达式计算—利用栈实现(可以实现相关加减法,乘除法,右括号运算……并且是采用字符串读入表达式)
一个正则去代码的问题!
如:rnrn2009-03-21T13:50:26.437+08:00rnrn2009-03-22T13:35:26.437+08:00rnrnrn把一个页面所有的这类型的,变成rn2009-03-21rn2009-03-22rnrn如何搞?
关于利用jQuery插件实现盒子的拖拽
首先,先写一个盒子。 &amp;lt;!DOCTYPE html&amp;gt; &amp;lt;html&amp;gt; &amp;lt;head&amp;gt; &amp;lt;meta charset=&quot;UTF-8&quot;&amp;gt; &amp;lt;title&amp;gt;拖拽盒子&amp;lt;/title&amp;gt; &amp;lt;script type=&quot;text/javascript&quot; src=&quot;js/jquery-1
怎么去写代码
这个都已经拖了好久了。 说实话,自己是一个小菜鸟,总是是因为懒。 先说下怎么写代码,我没有读过程序设计之类的书籍,单凭个人的思考进行总结,如有不妥之处,青务必多多斧正。 在此之前我们需要明白一个问题,语言的发展趋势,我的答案是方便,无论是语言出了多少版本,是为了让程序员更加快速、更加方便的写出好的代码。因此我认为写代码需要注意以下几点 1、方便 方便调用,方便移植(简言之,需要有...
遇到C语言编程中的一个问题。代码如下。
#include rnint main ()rnrn char * ptr = "how are you";rn reverse_string(ptr);rn printf("%s",ptr);rnrnvoid reverse_string(char * string)rnrn char * last_string;rn for(last_string = string; *last_string != '\0';last_string++)rn ;rn last_string--;rn while(string < last_string)rn rn char temp;rn temp = *string;rn *string++ = *last_string;rn *last_string-- = temp; rn rnrn这个代码是C和指针中第六章第三个编程习题的答案。首先,我想问的是,while(string < last_string)rn这里比较的是两个内存地址的大小吗?我调试的时候,string 显示的是 我设置的那个字符串,而last_string 显示的这个字符串的最后一个字母。而且这个代码,我去运行的时候也是有问题的。请人来给我讲解下,最后一个个的讲解。还有就是这个代码为什么运行会出问题呢? 还有我是新人一个啊,结贴也不太会,不要见怪啊。吃过晚饭来看看,求高人解答。
利用DB实现分布式锁的思路
概述 以前参加过一个库存系统,由于其业务复杂性,搞了很多个应用来支撑。这样的话一份库存数据就有可能同时有多个应用来修改库存数据。比如说,有定时任务域xx.cron,和SystemA域和SystemB域这几个JAVA应用,可能同时修改同一份库存数据。如果不做协调的话,就会有脏数据出现。对于跨JAVA进程的线程协调,可以借助外部环境,例如DB或者Redis。下文介绍一下如何使用DB来实现分布式锁...
html2pdf 实现思路和代码
NULL 博文链接:https://feiyan35488.iteye.com/blog/1008997
实现杨辉三角的思路及代码
import java.util.*; /*杨辉三角形 * 1 * 1 1 * 1 2 1 * 1 3 3 1 * 1 4 6 4 1 * 分析:看这种图像的规律 * 1:任何一行的第一列跟最后一列都是1 * 2:从第三行开始,每一个数据都是它上一行的前一列跟上一行的本列之和 * 步骤 * 1:首先定义一个二维数组,行数如果为n,那么先将列数也为n ,n这个数
c语言编程代码
通过链表来进行简单的学生成绩管理。具有简单的增加,删除,查询,修改的功能
C语言编程代码
重庆大学自动化学院C语言代码,方便学弟学妹下载学习。
delphi怎样去实现位或运算。
有一段vc代码:dt_setevtmsk(iDtiBoardHandle,DTG_E1ERREVT,DEEC_RLOS|DEEC_RUA1|DEEC_FSERR|DEEC_MFSERR,DTA_SETMSK)rn我想把这个函数翻成Delphi的,怎样实现DEEC_RLOS|DEEC_RUA1|DEEC_FSERR|DEEC_MFSERR。
减法运算之硬件优化实现思路
在实际项目中,用FPGA硬件编程实现算法时,总会不时地关注两个点:1- 算法实现的速率;2- 芯片被消耗的资源;二者可归纳为某算法在FPGA片上实现的效率是否满足设计要求。故笔者又重新回去啃书本时,遇到减法运算在硬件实现中的优化点,记录如下:     减法运算时,如果两个数(包括正负数)均用原码表示,则运算过程为:1- 先比较两个数绝对值的大小,然后绝对值较大的数作为被减数,较小的数作为减数;2
webBrowser 怎么去实现
动态编程 生成HTML 数据显示出来
一个很简单的c语言编程的问题,
输入一个数,它既能被3整除又能被5整除。rnrn我是这样写的代码,但在vc++6。0 上编译没错,但链接有错误。不知道怎么改。请高人指点!谢谢!!rnrnrnrn#include rnvoid mian()rnint a;rnprintf("please input a number:\n");rnscanf("%d=a",&a);rnif((a%3==0)&&(a%5==0))rnprintf("YES\n");rnelsernprintf("NO\n");
一个c语言编程问题
我现在编制的程序有两个循环 ,具体关系如下:rn |rn |-------|rn |------| |rn | | |rn | |-------|rn | |rn | |rn | |rn | |rn |------|rn |rn |rn两个循环体并不是简单的包含关系,用c语言有什么好办法实现吗?
一个C语言编程的问题……
请懂C的高手进来看看,偶很菜的……rnrn偶按照C语言入门.pdf里说的写一模一样的代码!可是TC3提示我ERROR错误!可是偶写的和教材里的一样啊…………rnrnCODE rnrnmain()rnrn printf("My First C program.\n");rn rn rnrnrn听别人说是我的什么目录设置问题…………我的TC3是网络上下来的,install安装的……
C语言编程中的一个问题.,
题目:rn请编制程序prog1.c,从文件in.dat中读取200个整数至数rn组xx中,不计数组xx中值最大和最小的数(若有重复值,则都rn不计),求出其余数中的最大数及最大数max的个数cnt1、最小rn数min及最小数的个数cnt2和所剩下200-cnt1-cnt2个数的算术rn平均值pj(保留2位小数)。 结果max,cnt1,min,cnt2,pj输出到out.dat中。rn部分程序、读数据函数read_dat(int xx[200])及输出格式已给出.rnrn#include rn#include rn#define N 200rnrnvoid read_dat(int xx[N])rnrn int i,j;rn FILE *fp;rnrn fp=fopen("in.dat","r");rn for(i=0;i<20;i++)rn for(j=0;j<10;j++)rn fscanf(fp,"%d,",&xx[i*10+j]);rn printf("%d ",xx[i*10+j]);rn rn printf("\n");rn rn fclose(fp);rnrnrnvoid main()rnrn int m,n,p,temp,sum;rn int cnt1,cnt2,xx[N],max,min;rn float pj;rn FILE *fw;rnrn clrscr();rn fw=fopen("out.dat","w");rn read_dat(xx);rnrn max=0;min=0;cnt1=0;cnt2=0;sum=0;rnrn//请在此处补充程序的未完整部分//rnrn printf("\n\nmax=%d,cnt1=%d,min=%d,cnt2=%d,pj=%6.2f\n",max,cnt1,min,cnt2,pj);rnfprintf(fw,"%d\n%d\n%d\n%d\n%6.2f\n",max,cnt1,min,cnt2,pj);rnfclose(fw);rnrn///////////////////////////////////////////////////////////////////////rn参考答案:rnfor(m=0;mxx[j])rn temp=xx[i];xx[i]=xx[j];xx[j]=temp;rn max=xx[199];min=xx[0];rnfor(i=0;i<200;i++)rn if(xx[i]==max) cnt1++;xx[i]=0;rn if(xx[i]==min) cnt2++;xx[i]=0;rn sum+=xx[i];rn pj=1.0*((int)(sum*100/(200-cnt1-cnt2)))/100;rn//////////////////////////////////////////////////////////rn本人的答案和参考答案主要的 不同 的" 行" 已经用星号******标识出来了.rn运行后,发现本人的答案是不正确的.rn想了一个晚上也想不出哪里有错,rn请指点迷津,谢谢.
一个C语言编程遇到的问题
在运行的时候,遇到这样一个问题,哪位老大帮忙看一下啊rnrn*** glibc detected *** ./Tse: double free or corruption (!prev): 0x00002aaaac029260 ***rn======= Backtrace: =========rn/lib64/libc.so.6[0x3f3bc6e8a0]rn/lib64/libc.so.6(cfree+0x8c)[0x3f3bc71fbc]rn./Tse[0x43da45]rn./Tse[0x43e38a]rn./Tse[0x43815d]rn./Tse[0x4149c4]rn./Tse[0x4164fa]rn/lib64/libpthread.so.0[0x3f3c8061b5]rn/lib64/libc.so.6(clone+0x6d)[0x3f3bccd39d]rn======= Memory map: ========rn00400000-00499000 r-xp 00000000 fd:00 167477918 /home/xiuxiu/tse/Tsern00698000-00699000 rw-p 00098000 fd:00 167477918 /home/xiuxiu/tse/Tse
用asp代码怎么编写实现加减乘除混合运算的代码?
用asp代码怎么编写实现加减乘除混合运算的代码?我的数据已经导入SQL server 2000数据库了。现要提取出来进行算术运算。rn例如要实现下述运算的代码,应该怎样写?请各位帮忙。谢谢!rn(54+54+34+97)*10%+(56+78+96+44+90)*90%
利用栈进行算术表达式运算的c++代码
数据结构课程里的题目,利用栈进行算术表达式运算的算法原理
一个有关C语言编程的问题
你好,rn 我是一位编程爱好者,几天来编了一个小游戏,确却因为在load一幅BMP图片时,程序在第17行上(可能是因为第17行)总是出错说"Lvalue required in function load_pic",而且有时候提示说你的程序显示范围出rn界,请教为何?怎么才能使这个子函数正确运行?输出范围应该如何确定?谢谢。rn 我的函数load_pic()的源程序为:rn void load_pic()rnrn 1. char fname[80];rn 2. FILE *fp;rn 3. register int i,j;rn 4. char far*ptr=(char far*)0xb800000000;rnrn 5. char far*temp;rn 6.unsigned char buf[14][80];rn 7.temp=ptr;rnrn 8.for(i=0;i<14;i++)rn rn 9.for(j=0;j<80;i+=2)rn rn 10. buf[i][j]=*temp;rn 11.buf[i][j+1]=0;rn 12.*(temp+8152)=0;rn 13.temp++;rn rn rn 14.goto_xy(0,0);rn 15.printf("Game board:");rn 16.gets(fname);rn 17.if(!fp=fopen(fname,"rb"))rn rn 18.goto_xy(0,0);rn 19.printf("cannot open file \n");rn 20.temp=ptr;rn 21.for(i=0;i<14;i++)rn rn 22.for(j=0;j<80;j+=2)rn rn 23.*temp=buf[i][j];rn 24.*(temp+8152)=0;rn 25.temp++;rn rn 26.return;rnrnrnrnrn
一个简单去令我不解的C语言编程问题。谢谢
/* main.c */rn#include rnint mian()rnrn float ff = 10.33;rn prt_f(ff);rnrnrn/*prt.c*/rnvoid prt_f(float ff)rnrn printf("%f",ff);rnrnrn/*makefile*/rnmain: main.o prt.orn gcc main.o prt.o -o mainrnmain.o: main.crn gcc -c main.crnprt.o: prt.crn gcc -c prt.crnrnrn可是运行结果确 -2.000000 请问这时怎么解释。可是对于别的数据类型,(如doublernint,char,char*)则能正常显示。rnrn若在mian函数前加上声明extern void prt_f(float ff);则显示正常10.33;rnrnrn或者把prt.c变为prt.h在main.c 中 #include "prt.h"也工作正常(这倒是很好理解的)rn水能给出前面的解答。谢谢!!
资源管理器中的前进、后退是怎么实现的?
我用一个列表,但是好像感觉有点问题:rn比如,rn1、先打开E:rn列表内容为 rnE:rn2、打开temp目录rn列表内容为,当前为最尾项,所以前进为灰色rne:rne:\temprn3、此时后退rn列表内容为,当前为第一项,所以后退为灰色,前进可用rne:rne:\temprn4、此时再打开projectrn这时列表内容应该为什么呢:rn如果是rne:rne:\temprne:\project,则此时后退出错,后退应该到e:的rn如果是:rne:rne:\projectrne:\temp,则此时前进出错,因为这时应该不能前进rn该怎么处理这个问题啊?rn
怎么实现程序安装时候的前进后退界面?
窗口的界面变换是怎么实现的?就像程序安装的时候next ,back功能。
相关热词 c# 线程结束时执行 c# kb mb 图片 c# 替换第几位字符 c#项目决定成败 c# 与matlab c# xml缩进 c#传感器基础 c#操作wps c# md5使用方法 c# 引用父窗口的组件

相似问题

2
一个数字取模运算的问题,用C语言怎么实现的呢?
1
C语言四则运算计算器的一个问题
1
如何使用C语言实现逆波兰运算(加减乘除)求值?
1
C语言编程逆波兰运算时为何这一句话会出现两遍,是循环结构有问题吗?
1
c语言中在运算中如何实现指数运算?
0
一个大数的四则运算的问题,求出指数的运算结果,采用C语言程序的解决
0
C语言通过编程的方式实现这个概率的运算,要体现数据结构的思想
0
列竖式计算的一个代换问题的算法难题,采用C语言如何运算的
0
线路图的匹配算法问题,逻辑的运算,怎么利用C语言实现这个逻辑
0
基数进行开平方运算的一个数字问题的求解?用C编程语言如何实现的
0
关于算术运算符和位运算符的一个问题,采用C语言程序的技术来编写程序
0
用竖式计算的一个二进制运算的问题,怎么才能利用C语言的方式的程序来设计
0
最大角度的一个运算的解决,怎么利用C语言的程序的设计的技术来实现的
0
C语言程序设计一个小学生四则运算系统
0
一个天气遇到的计算的运算的算法,怎么利用C语言的程序的设计的方式实现的
1
C语言:逻辑运算符的使用
0
函数递归运算的运用算法问题,怎么采用C语言的程序的设计的思想实现?
0
二个分数的组合的运算的问题,怎么采用C语言程序的编写的方式实现?
0
通过筷子的摆放构成的运算操作的问题,怎么采用C语言的程序的编写的思想实现的
0
数列的整理的一个算法的运算,怎么采用C程序的语言的代码的编写的技术来实现?