おみやげをまらいました(map)

这篇博客讲述了如何在石头剪刀布游戏中通过预知蛙蛙的出拳顺序来制定策略,确保每次都能获胜。输入是蛙蛙的出拳序列,输出是玩家应采取的获胜出拳序列。博客提供了相关代码示例。

在这里插入图片描述

蛙蛙还是给你带来了礼物。但它有个小小的要求,那就是你得在石头剪刀布上赢过它才能拿到礼物哦!
在这里插入图片描述

现在根据你的观察,你已经知道了蛙蛙心想的出拳顺序,你需要安排自己的出拳顺序,使得你能在每一局中都获胜。
在这里插入图片描述

输入描述:

在这里插入图片描述

输出描述:
在这里插入图片描述

输入

stone sci
sci paper
paper stone
4
stone
sci
spock
paper

输出

paper
stone
Fake
sci

代码:

#include<iostream>
#include<string>
#include<cstdio>
#include<cmath>
#include<cstring>
#include<algorithm>
#include<map>
using namespace std;
map<string ,string>f;
map<string , int>book;
int main()
{
    for(int i = 1 ; i <= 3 ; i++)
    {
        string s1 , s2;
        cin>>s1>>s2;
        f[s2] = s1;
        book[s2] = 1;
        book[s1] = 1;
    }
    int n;
    cin>>n;
    for(int i = 1 ; i <= n ; i++)
    {
        string s;
        cin>>s;
        if(book[s] == 1)
            cout<<f[s]<<endl;
        else
            cout<<"Fake"<<endl;
    }
}
AtCoder 王国を治める高橋君は、英小文字のアルファベット順を変更することにしました。 新たなアルファベット順はa , b , …, z を並べ替えて得られる文字列 X を用いて表されます。X の i (1 ≤ i ≤ 26) 文字目は、新たな順番において i 番目に小さい英小文字を表します。 AtCoder 王国には N 人の国民がおり、それぞれの国民の名前は S1​, S2​, …, SN​ です。ここで、Si​ (1 ≤ i ≤ N) は英小文字からなります。 これらの名前を、高橋君の定めたアルファベット順に基づく辞書順に従って並べ替えてください。 辞書順とは? 辞書順とは簡単に説明すると「単語が辞書に載っている順番」を意味します。より厳密な説明として、英小文字からなる相異なる文字列 S, T の大小を判定するアルゴリズムを以下に説明します。 以下では「 S の i 文字目の文字」を Si​ のように表します。また、 S が T より辞書順で小さい場合は S < T 、大きい場合は S > T と表します。 S, T のうち長さが大きくない方の文字列の長さを L とします。i=1,2,…,L に対して Si​ と Ti​ が一致するか調べます。 Si​ = Ti​ である i が存在する場合、そのような i のうち最小のものを j とします。そして、Sj​ と Tj​ を比較して、Sj​ が Tj​ よりアルファベット順で小さい場合は S < T 、そうでない場合は S > T と決定して、アルゴリズムを終了します。 Si​ = Ti​ である i が存在しない場合、S と T の長さを比較して、S が T より短い場合は S < T 、長い場合は S > T と決定して、アルゴリズムを終了します。
03-12
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值