news 2026/6/16 14:57:36

おみやげをまらいました【牛客tracker 每日一题】

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
おみやげをまらいました【牛客tracker 每日一题】

おみやげをまらいました

时间限制:1秒 空间限制:256M

知识点:思维题 STL

网页链接

牛客tracker

牛客tracker & 每日一题,完成每日打卡,即可获得牛币。获得相应数量的牛币,能在【牛币兑换中心】,换取相应奖品!助力每日有题做,丰盈牛币日益多!

题目描述

おみやげをまらいました!

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

你们这样规定:有三个字符串S 1 , S 2 , S 3 S_1,S_2,S_3S1,S2,S3,表示三种出拳种类,其中S 1 S_1S1可以打败S 2 S_2S2S 2 S_2S2可以打败S 3 S_3S3S 3 S_3S3可以打败S 1 S_1S1

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

“焼きまんじゅう”、“ういろう”、“⽡せんべい”、“福だるま”、“⽉うさぎのボタン”……

输入描述:

前三行每行两个字符串,每行S a , S b S_a,S_bSa,Sb,表示S a S_aSa能打败S b S_bSb
数据保证不互相矛盾,且其中有恰好三种不同的字符串。
接下去一个数N NN,表示N NN次对战。
接下去N NN行每行一个字符串,表示蛙蛙的出拳种类。注意,蛙蛙的出拳可能不合法(即不是三种字符串中的),这时请输出" F a k e " "Fake""Fake"

输出描述:

N NN行,每行一个字符串,表示每一局你需要出什么。
如果对手出的不合法,输出" F a k e " "Fake""Fake"

示例1

输入:

stone sci sci paper paper stone 4 stone sci spock paper

输出:

paper stone Fake sci

备注:

2 ≤ ∣ S ∣ ≤ 50 2≤∣S∣≤502≤∣S∣≤50
1 ≤ N ≤ 100 1≤N≤1001N100

解题思路

本题核心是建立循环克制的映射关系,通过索引快速求解获胜出拳。题目给定固定的循环克制规则(A胜B、B胜C、C胜A),首先从三组输入中提取3个不重复的出拳字符串,按克制顺序存储。利用索引规律简化计算:若对手出拳对应索引为idx,能击败它的出拳索引为(idx+2)%3。处理查询时,先判断蛙蛙的出拳是否在三个合法字符串中,不合法直接输出Fake;合法则根据索引公式快速找到对应获胜出拳并输出。全程为常数级运算,逻辑极简,完美适配题目约束。

总结

核心逻辑:利用循环克制的索引规律,O(1)查询能击败对手的出拳。
关键操作:提取3个唯一出拳字符串、建立索引映射、判断出拳合法性。
效率保障:固定常数级运算,无冗余计算,快速处理所有查询。

代码内容

#include<bits/stdc++.h>usingnamespacestd;#defineendl'\n'typedeflonglongll;typedefunsignedlonglongull;typedefvector<vector<ll>>vvt;typedefpair<ll,ll>pll;constll N=1e3+10;constll INF=1e18;constll M=1e6+10;constll mod=1e9+7;intmain(){ios::sync_with_stdio(0);cin.tie(0),cout.tie(0);chars[3][51]={"","",""},t[51];scanf("%s %s",s[0],s[1]);for(ll i=0;i<4;i++){scanf("%s",t);if(strcmp(s[0],t)!=0&&strcmp(s[1],t)!=0)strcpy(s[2],t);}ll n;scanf("%lld",&n);for(ll i=0;i<n;i++){scanf("%s",t);ll idx=-1;for(ll j=0;j<3;j++)if(strcmp(s[j],t)==0){idx=j;break;}if(idx==-1)printf("Fake\n");elseprintf("%s\n",s[(idx+2)%3]);}return0;}
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/14 5:50:25

终极指南:5个核心功能让Rufus成为你的系统安装救星

终极指南&#xff1a;5个核心功能让Rufus成为你的系统安装救星 【免费下载链接】rufus The Reliable USB Formatting Utility 项目地址: https://gitcode.com/GitHub_Trending/ru/rufus 你是否曾经因为老旧电脑无法安装Windows 11而烦恼&#xff1f;或者因为制作启动盘时…

作者头像 李华
网站建设 2026/6/14 5:50:26

STM32F4平台AD7982 18位高精度ADC完整SPI驱动工程(Keil可直接编译)

本文还有配套的精品资源&#xff0c;点击获取 简介&#xff1a;基于STM32F4系列MCU&#xff08;如F407/F429&#xff09;开发的AD7982专用驱动工程&#xff0c;支持18位分辨率、最高1 MSPS采样率&#xff0c;通过标准SPI接口实现可靠通信。工程采用ST官方HAL库构建&#xff…

作者头像 李华
网站建设 2026/6/14 5:50:23

5分钟掌握League Director:英雄联盟专业回放导演工具终极指南

5分钟掌握League Director&#xff1a;英雄联盟专业回放导演工具终极指南 【免费下载链接】leaguedirector League Director is a tool for staging and recording videos from League of Legends replays 项目地址: https://gitcode.com/gh_mirrors/le/leaguedirector …

作者头像 李华