TouchStone
  请登录后使用
登录 注册
 系统首页  练习题库  考试列表  判题结果  信息发布  解题排行
  • 首页
  • 题库
  • P2042
  • 题目
  • P2042【CQOI2011】吃金币
    限制 : 时间限制 : 1000000 MS   空间限制 : 165536 KB
    问题描述

    在一个n*m网格中有一些金币,你每次可以往上、下、左、右之一的方向冲,直到“撞墙”(碰到障碍物或者边界)为止才停下来,沿途吃掉碰到的所有金币。有时,你发现只能吃到很少的金币,因此打算增加一些障碍物,然后吃掉尽量多的金币。注意,只能把原地图中的空格(而不能是金币或游戏者的初始位置)变成障碍物。

    输入格式

    本题是提交答案题目,输入文件为eat1.ineat10.in。
    输入第一行包含两个整数n, m。以下n行每行包含m个字符,即游戏的初始地图。其中’.’表示空地,’#’表示障碍,’C’表示金币,’@’表示你的起始位置。
    注意:请把输入文件eat1.in
    eat10.in备份到安全的地方,防止被意外修改。

    输出格式

    本题是提交答案题目,输出文件为eat1.out~eat10.out。
    输出第一行为整数n和m,然后是n行m列,格式同输入。这个游戏地图应当是输入地图把若干个空地替换成障碍物以后得到的。下一行为一个字符串,用UDLR表示往上、下、左、右方向移动一格。移动序列不得超过100000个字符。最后一行是吃到的金币总数。

    样例输入

    6 5
    ...@.
    C....
    ..C#.
    .C...
    ....#
    ....C

    样例输出

    6 5
    ...@.
    C#...
    ..C#.
    .C...
    ..#.#
    ....C
    DLDLUDR
    4

    提示

    评分标准
    对于每个测试点,如果你的解不正确(地图不对、指令序列不合法或者金币总数不对),或者一个金币都没吃到,该测试点得0分;否则设一共有a位选手至少吃到了一个金币,其中有b位选手的解严格比你优(即吃到的金币数严格比你大),本测试点你的得分为9*(1-b/a)+1四舍五入保留两位小数。

    本题附带一个图形界面版的游戏,运行方式如下:
    eat_game <input_filename> <output_filename>
    按上、下、左、右键继续移动,鼠标添加障碍,Backspace“悔棋”(限一步),F5存盘,F7读盘。每次存盘之前,当前数据文件会保存到一个备份文件中。例如eat1.out会保存成eat1.out.bak。如果输出文件不合法,游戏会给出相应提示。
    温馨提示:为了您的视力和比赛成绩,请合理安排游戏时间。

    游戏和输入数据下载(如果下载后无法正常打开,请按以下方法下载:鼠标右键点击"输入数据下载",选择"目标另存为",保存。然后将文件"2042"的后缀名改为".rar",解压即可)