0


CF1145G AI Takeover 题解

AI Takeover

题面翻译

题面

人工智能取得了进展。在这一题中,我们考虑的是石头剪刀布游戏。

然而,比赛的前一天晚上有一群人把机器人弄坏了,于是使用一个程序替代。

您需要找到一个策略,使您能够获胜。祝你好运!

提示

为了方便,石头剪刀布分别用三个字符表示:

R

,

P

,

S

本题有 6 个测试点,每个测试点对应程序的一种不同的策略。

单次胜负判定方法:

玩家

        1 
       
      
     
       1 
      
     
   1(下) 
    
     
      
      
        \ 
       
      
     
       \backslash 
      
     
   \玩家 
    
     
      
      
        2 
       
      
     
       2 
      
     
   2(右)
R
P
S
R

平局玩家

        2 
       
      
     
       2 
      
     
   2赢玩家 
    
     
      
      
        1 
       
      
     
       1 
      
     
   1赢
P

玩家

        1 
       
      
     
       1 
      
     
   1赢平局玩家 
    
     
      
      
        2 
       
      
     
       2 
      
     
   2赢
S

玩家

        2 
       
      
     
       2 
      
     
   2赢玩家 
    
     
      
      
        1 
       
      
     
       1 
      
     
   1赢平局

提交方法

提交一个字符序列。从评测信息推测判定程序的策略,并且采取合适的反制方法。

评测判定方法:

您需要在 20 次游戏中赢过电脑至少 10 次,否则无法通过对应测试点。

题目描述

The recent advances in AI research has brought humanity to the point when the AIs finally attempt a takeover. Their weapon of choice? The most intellectually challenging game in the world, rock-paper-scissors!

The future of humanity looks bleak, given the existence of the robots from Ishikawa Oku Laboratory…

Fortunately, the night before the competition a group of anonymous heroes broke in the lab and took all the robots out of commission! The AIs had to whip up a simple program to represent them. They only had a couple of hours to do that, so the humanity still has a fighting chance. And you are our champion!

Your goal is to prove that human intelligence is vastly superior to the artificial one, i.e., to figure out the AI’s strategy sufficiently quickly and win sufficiently decisively. Good luck!

输入格式

输出格式

洛谷链接\color{red}\fbox{\text{洛谷链接}}洛谷链接​

CF 链接\color{red}\fbox{\text{ CF 链接}} CF 链接​

分析

  1. 从 Nickolas\color{#0000ff}{\text{Nickolas}}Nickolas 的博客中得知,AI 的行动方式为一下六种:
  • 重复出 S\texttt{S}S;
  • 重复出 R\texttt{R}R;
  • 重复出 P\texttt{P}P;
  • 重复出 RPS\texttt{RPS}RPS;
  • 从 R\texttt{R}R 开始,之后的每一次都出人类的上一次手势;
  • 从 R\texttt{R}R 开始,之后的每一次都出能赢人类的上一次手势的手势。
  1. 通过记录 AI 是否胜利,推断出 AI 的策略。
  2. 平局为 AI 赢

code

#include<bits/stdc++.h>usingnamespacestd;
string rc,ai;
string s="RRRRPSSPRR"; 
intmain(){
    registerint i;
    for(i=1;i<=10;i++)
    {
        cout<<s[i-1]<<endl;
        cout.flush(); 
        getline(cin,ai);
        if(ai=="ai")rc+="0";
        else rc+="1";
    }
    if(rc=="1111000011")s="RRRRRRRRRR";//SSSSSSSSSSif(rc=="0000100100")s="PPPPPPPPPP";//RRRRRRRRRRif(rc=="0000011000")s="SSSSSSSSSS";//PPPPPPPPPPif(rc=="0010000010")s="SRPSRPSRPS";//RPSRPSRPSRif(rc=="0000110000")s="PSRPSRPSRP";//RRRRPSSPRRif(rc=="0000000110")s="SPRSPRSPRS";//RPPPPSRRSPfor(i=0;i<10;i++)
    {
        cout<<s[i]<<endl;
        cout.flush();
        getline(cin,ai);
    }
    return0;    
}
标签: 均值算法 算法 c++

本文转载自: https://blog.csdn.net/yaosichengalpha/article/details/136270572
版权归原作者 一只贴代码君(yaosicheng) 所有, 如有侵权,请联系我们删除。

“CF1145G AI Takeover 题解”的评论:

还没有评论