最新要闻

广告

手机

iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?

iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?

警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案

警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案

家电

前沿资讯!L2-040 哲哲打游戏

来源:博客园

哲哲是一位硬核游戏玩家。最近一款名叫《达诺达诺》的新游戏刚刚上市,哲哲自然要快速攻略游戏,守护硬核游戏玩家的一切!


(资料图片仅供参考)

为简化模型,我们不妨假设游戏有N个剧情点,通过游戏里不同的操作或选择可以从某个剧情点去往另外一个剧情点。此外,游戏还设置了一些存档,在某个剧情点可以将玩家的游戏进度保存在一个档位上,读取存档后可以回到剧情点,重新进行操作或者选择,到达不同的剧情点。

为了追踪硬核游戏玩家哲哲的攻略进度,你打算写一个程序来完成这个工作。假设你已经知道了游戏的全部剧情点和流程,以及哲哲的游戏操作,请你输出哲哲的游戏进度。

输入格式:

输入第一行是两个正整数N和M(1≤N,M≤105),表示总共有N个剧情点,哲哲有M个游戏操作。

接下来的N行,每行对应一个剧情点的发展设定。第i行的第一个数字是Ki​,表示剧情点i通过一些操作或选择能去往下面Ki​个剧情点;接下来有Ki​个数字,第k个数字表示做第k个操作或选择可以去往的剧情点编号。

最后有M行,每行第一个数字是 0、1 或 2,分别表示:

  • 0 表示哲哲做出了某个操作或选择,后面紧接着一个数字j,表示哲哲在当前剧情点做出了第j个选择。我们保证哲哲的选择永远是合法的。
  • 1 表示哲哲进行了一次存档,后面紧接着是一个数字j,表示存档放在了第j个档位上。
  • 2 表示哲哲进行了一次读取存档的操作,后面紧接着是一个数字j,表示读取了放在第j个位置的存档。

约定:所有操作或选择以及剧情点编号都从 1 号开始。存档的档位不超过 100 个,编号也从 1 开始。游戏默认从 1 号剧情点开始。总的选项数(即∑Ki​)不超过106。

输出格式:

对于每个 1(即存档)操作,在一行中输出存档的剧情点编号。

最后一行输出哲哲最后到达的剧情点编号。

输入样例:

10 113 2 3 41 63 4 7 51 31 92 3 53 1 8 51 92 8 1001 10 30 11 20 20 22 20 30 11 10 2

输出样例:

13910

样例解释:

简单给出样例中经过的剧情点顺序:

1 -> 4 -> 3 -> 7 -> 8 -> 3 -> 5 -> 9 -> 10。

档位 1 开始存的是 1 号剧情点;档位 2 存的是 3 号剧情点;档位 1 后来又存了 9 号剧情点。

代码长度限制16 KBJava (javac)时间限制800 ms内存限制64 MBPython (python3)时间限制1000 ms内存限制64 MB***不知道为什么,这道题的vector如果不放全局变量,就没法输入值。
1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 vector g[100005]; 8 int main() 9 {10     int record[110];11     int n,m,i,j,k,x;12     scanf("%d%d",&n,&m);13     for(i = 1;i <= n;i++)14     {15         scanf("%d",&k);16         for(j = 1;j <= k;j++)17         {18             scanf("%d",&x);19             g[i].push_back(x);20         }21     }22     int fin = 1;23     int opa,opb;24     for(i = 1;i <= m;i++)25     {26         scanf("%d%d",&opa,&opb);27         if(opa == 0)28         {29             fin = g[fin][opb-1];30         }31         else if(opa == 1)32         {33             record[opb] = fin;34             printf("%d\n",fin);35         }36         else37             fin = record[opb];38     }39     printf("%d",fin);40     system("pause");41     return 0;42 }

关键词: