石头剪刀布--蓝桥杯大赛青少年创意编程C++高级组模拟题

石头剪刀布

Description
放假期间,小蓝与电脑对垒,玩起了一款经典的游戏: “石头剪刀布” 。游戏规则想必大家已经非常熟悉了:两边一样则为平局,否则石头胜于剪刀;剪刀胜于布;布胜于石头。小蓝与电脑的对垒一共有 n 个回合,平局或败局得分为 0;胜局得分取决于小蓝出手的阵容, 剪刀、石头、布各有不同的分值:

出手“石头” 赢的话得 r 点分值;

出手“剪刀” 赢的话得 s 点分值;

出手“布” 赢的话得 c 点分值;

但是,在第 i 回合中,小蓝不能使用在第( i-k) 个回合中使用的阵容。 (在前 k 个回合中,小蓝可以使用任何阵容。)在游戏开始之前,电脑已经事先安排好了每回合比赛的阵容,而小蓝居然未卜先知了电脑的阵容! 电脑的出手阵容用字符串 t 给出,如果 t 的第 i 个字符( 1≤i≤n)为 r,则代表电脑将在第 i 个回合中出手“石头” 。同样, c 和 s 分别代表“布” 和“剪刀” 。那么请你计算一下,小蓝在游戏中可以获得的最大分值是多少?

Input
n k

r s c

t

其中: n,k,r,s,c 都是整数, t 是字符串。

2≤n≤20

1≤k≤n−1

1≤r,s,c≤1000

字符串 t 的长度是 n。

Output
小蓝在游戏中可以获得的最大分值。

Sample Input
5 2
8 7 6
rsrcr
Sample Output
27
Hint
【样例解释】

机器出手的阵容是:石头、 剪刀、 石头、 布、 石头则小蓝出手:布、 石头、 石头、 剪刀、 布,分值为6+8+0+7+6=27分第3回合里,小蓝不能再出第( 3-2=1)回合里出过的“布”了,所以选择了平局,出手“石头”,得0分。

【评分标准】

30 分 :完成一个题目样例和给出的一个样例;

50 分 :在 30 分的基础上完成给出的另外一个样例;

100 分:在 50 分的基础上完成给出的最后一个样例。

敲重点
这道题吗……实际上还是模拟(蓝桥杯除国赛外不都是模拟(青少组)),but!这道稍微要点思维


上代码!


#include <bits/stdc++.h>
using namespace std;
#
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值