宝石(pearls)
   

  有两个矮人部落,绿族和红族。他们共同发现了一个宝石链。链上有(L-1)枚白黑两种石头,而在末端有一枚价值连城的钻石。两个部落都想得到这枚钻石,他们决定用游戏的方式解决这个问题。

              

  他们一共N个矮人,分别用1到N编号。每个矮人有黑、白两个名单(不同矮人的名单可能不同)。当一个矮人拿到宝石链时,他将取下最外面的一块石头。如果此石为黑,则此矮人在他的黑名单中选一个矮人(可能使他自己),并将宝石链交给他。到链上只剩下唯一的钻石时,拿到此链的矮人属于的部落将得到此钻石。一开始,宝石链将交给第F个矮人。

  你要与交互库进行游戏,并帮助绿族拿到钻石。你应假设测评时的交互库使用的是最优策略。(网上下载的库用的是最弱的策略)

  交互库pearls_lib描述如下:

  function getNext:Integer;
  当轮到红族时,调用此函数得到下一个拿到宝石链的矮人。

  procedure setNext(d:Integer);
  当轮到绿族时,调用此过程告诉交互库下一个拿到宝石链的矮人是谁。

  procedure finish;
  当链上只剩唯一的一枚钻石时,调用此过程来结束你的程序。

  输入:

  第1行:L、N、F(1<=L<=1000,1<=N<=1000,1<=F<=N)
  第2行:有L个字符,"B"表示黑石头,"W"表示白石头,"D"表示钻石。
  接下来的N行依次描述每个矮人的情况:
  第1个数:0表示他属于绿族,1表示他属于红族。
  下一个数:黑名单人数L_B
  后L_B个数:描述黑名单
  下一个数:白名单人数L_W
  后L_W个数:描述白名单

   

 
网站导航 | 关于曙光 | 联系我们 | 请提意见
Copyright © FuJian Sunshine Educational Info. Co.,Ltd.
福建曙光教育资讯有限公司 版权所有