P1335 [NOI2013]小Q的修炼

    • 3通过
    • 118提交
  • 题目提供者 洛谷OnlineJudge
  • 评测方式 云端评测
  • 标签 字符串 枚举,暴力 模拟 NOI系列 2013 Special Judge 提交答案
  • 难度 尚无评定
  • 时空限制 1000ms / 128MB

题解

  • 提示:收藏到任务计划后,可在首页查看。
  • 最新讨论 显示

    推荐的相关题目 显示

    题目描述

    小Q最近发现了一款新游戏,游戏的目标是从一个新手修炼成为武功高强的大侠。

    面对错综复杂的游戏世界,小Q要对他面临的每件事情做出谨慎的选择。例如,是否参加一个陌生人邀请的比武;同意或是拒绝用宝剑交换他人的武功秘籍……而 小Q做出的每一个选择都有可能影响到他以后的发展:面对一个高手,若主动与之比武,很可能会损失惨重;但若不去比武,也许今后就再也见不到这个高手了。

    对着这个游戏,小Q玩了很多次仍然玩不出他想要的结局,于是他费尽千辛万苦找到了游戏的剧本。令人惊讶的是,游戏的剧本并不像我们平时见到的剧本,反而很像代码。这个剧本是这样描述的:

    量:有2种量,常数和变量。

    常数:一个整数。

    事件:整个剧本由若干个事件构成。所有的事件按照给定的顺序从1开始依次编号。事件共有3种:普通事件、选择跳转和条件跳转。

    执行位置:一个整数,表示接下来将会执行的事件编号,如果不存在这个编号的事件则停止,即游戏到了一个结局。最初的时候执行位置为1。

    普通事件:一个变量增加或减少一个量的值。之后执行位置增加1。

    选择跳转:两个整数。执行到这里时玩家需要在这两个整数中选择一个,之后执行位置将被修改为这个整数。

    条件跳转:两个量和两个整数。执行到这里时,若第一个量小于第二个量,则执行位置将被修改为第一个整数,否则将被修改为第二个整数。

    小Q认为,整个游戏是希望一个叫做“成就值”的变量(编号为1)最大。

    描述量和事件的格式如下(“格式”中“#”表示空格)。

    输入输出格式

    输入格式:

    该题为提交答案型试题,所有输入数据train1.in~train10.in已在试题目录下。

    http://pan.baidu.com/s/1qYUAADY

    输入的第一行包含两个正整数n,m,表示事件的个数和变量的个数。

    接下来有n 行,每行描述一个事件。这些事件按照给出的顺序依次编号为1到n 。

    输出格式:

    针对给定的10 个输入文件train1.in~train10.in,你需要分别提交你的输出文件train1.out ~train10.out。

    每个文件需要输出若干行,每行输出一个字符“1”或“2”,表示执行过程中遇到的每个选择跳转所作的选择。

    输出的行数需要严格等于此次游戏执行过程中遇到的选择跳转的个数。

    输入输出样例

    输入样例#1: 复制
    11 2
    v 2 + c 19
    i v 2 c 3 7 3
    s 4 7
    v 1 + c 13
    v 2 - c 3
    i c 0 c 1 2 0
    i v 2 c 5 12 8
    s 9 12
    v 1 + c 23
    v 2 - c 5
    i c 0 c 1 7 0
    
    输出样例#1: 复制
    1
    1
    1
    2
    1
    1
    

    说明

    【样例说明】

    样例的剧本及编号如下:

    根据样例输出的方案,执行位置进行了如下的变化:

    1->2->3->4->5->6->2->3->4->5->6->2->3->4->5->6->2->3->7->8->9->10->11->7->8->9->10->11->7->12

    当执行位置变成12时,剧本结束。最终变量1的值为85。

    事件1为变量2增加19,可以认为是得到了19单位的初始资金。

    事件6为无条件跳转到事件2,可以看出这里是一个循环。从事件2和事件3可以看出,如果变量2小于3(资金不足一次购买)或者选择放弃则会跳出循环。循环内的事件4和事件5为花费3的资金得到13的成就值。

    事件7到11也是一个类似的循环,只是参数有所不同。为花费5的资金得到23的成就值。

    【评分方法】

    对于每组数据,我们采用如下方式评分:

    如果你的输出不合法,得0分。

    如果你的输出执行了超过10^6行剧本,得0分。

    如果你的输出能让剧本正常结束,得1分。

    如果你的输出能让剧本正常结束,且结束时成就值为正数,得2分。

    我们设置了8个评分参数a3,a4,...,a10。如果你的输出能让剧本正常结束,且结束时成就值不小于as,得s分。

    如果以上条目有多项满足,则取满足条件中的最高得分。

    形式化地讲,设在你的方案中,变量1最终的值为v1。当你的输出合法时,你的分数将会由下表给出:

    感谢zhouyonglong提供spj

    提示
    标程仅供做题后或实在无思路时参考。
    请自觉、自律地使用该功能并请对自己的学习负责。
    如果发现恶意抄袭标程,将按照I类违反进行处理。