分糖果(candy)

news/2025/3/5 7:09:16/

分糖果(candy)

本题为南阳理工学院第四届华为杯校赛A组的F题。

题目描述:

  Alice 和 Bob 一起买了一些糖果,每颗糖果有一种口味。他们决定拿这些糖果做游戏。游 戏规则如下: 

  • Alice 和 Bob 轮流拿糖果; 

  • Alice 每次只拿一颗糖果;  

  • Bob 每次拿至少两个糖果,但这些糖果必须是同一种口味的;  

  • 如果某一时刻某一方无法拿糖果,那么他就输了。  

  Alice 和 Bob 都是聪明的孩子,他们总是采取最优策略。现在告诉你,他们买了哪些糖果, 以及是 Alice 还是 Bob 先拿糖果,你能判断谁能取得游戏的胜利吗?  

  例如,Alice 和 Bob 买了 4 颗糖果,分别为第一种口味、第二种口味、第一种口味和第三 种口味。如果 Alice 先拿,那么她可以拿走第一颗糖果,这样所有糖果的口味都是不一样的, 所以 Bob 无法拿走任何糖果,从而 Alice 赢得了游戏。  

 

输入描述:

输入的第一行包含一个整数 n (1 ≤ n ≤ 300) 和一个字符串 s(s 为 Alice 或 Bob),分别表示糖果的数量和谁先拿糖果。第二行包括 n 个整数 a1, a2, · · · , an (1 ≤ an ≤ 300),ai 表示第 i 颗糖果的口味。

输出描述:

输出一行字符串(Alice 或 Bob),表示谁获胜。

样例输入:

4 Alice
1 2 1 3

样例输出:

Alice

提示:

思想:

⾸先,统计出每种⼝味糖果的数量。

1. 如果某种⼝味的糖果只有⼀颗,那么⼀定是Alice赢:只要还有其他糖果,Alice就拿其他糖果,否则Alice拿⾛这颗糖果(注意到Bob永远⽆法拿⾛这颗糖果)。

2. 如果每种⼝味的糖果都超过三颗,那么⼀定是Bob赢:如果Alice拿了⼀颗糖果使得某种⼝味的糖果只剩2颗,Bob就拿⾛剩下的这两颗糖果,否则Bob任意拿⾛⼀种⼝味的全部糖果。

3. 如果没有只有⼀颗的糖果⼝味,且有⼤于等于两种⼝味的糖果有恰好两颗,那么Alice⼀定能赢:Alice只需要拿⾛其中⼀颗,那么就可以转变成情况1

4. 如果没有只有⼀颗的糖果⼝味,且有恰好⼀种⼝味的糖果有恰好两颗,那么取决于谁先⾏动。如果Alice先拿,那么他可以拿⾛这颗糖果,转变为情况1,否则Bob把这两颗糖果全部拿⾛,转变为情况2

AC代码:

#include <bits/stdc++.h>
using namespace std;
int a[1010];
int main()
{int n,k;char s[10];int sum=0;cin>>n>>s;for(int i=0;i<n;i++){cin>>k;a[k]++;}for(int i=1;i<=300;i++){if(a[i]==1){cout<<"Alice"<<endl;return 0;}if(a[i]==2)sum++;}if(s[0]=='A'){if(sum>=1)cout<<"Alice"<<endl;elsecout<<"Bob"<<endl;}else{if(sum>=2)cout<<"Alice"<<endl;elsecout<<"Bob"<<endl;}return 0;
}

 


http://www.ppmy.cn/news/441734.html

相关文章

【糖果超甜:)】

1.分发糖果hard [题] n 个孩子站成一排。给你一个整数数组 ratings 表示每个孩子的评分。 你需要按照以下要求&#xff0c;给这些孩子分发糖果&#xff1a; 每个孩子至少分配到 1 个糖果。 相邻两个孩子评分更高的孩子会获得更多的糖果。 请你给每个孩子分发糖果&#xff0c;计…

分糖果 2021T1

#include<bits/stdc.h> using namespace std; int main(){ // freopen("candy.in","r",stdin); // freopen("candy.out","w",stdout);读写和输出文件 int n,L,R; cin>>n>>L>>R; int tn-L%n;…

好糖果坏糖果

小记 微策略的一二面是全英文的&#xff0c;两位很和善的美眉陪我熬了一个小时&#xff0c;我这坑坑巴巴的英文水平。。。英语差也就算了&#xff0c;我的智商水平也相当low&#xff0c;一点一滴的累计吧。随时摘录一些智力题&#xff0c;至于英语么&#xff0c;周末去英语角吧…

糖果

糖果 from https://ac.nowcoder.com/acm/contest/9983/G 时间限制&#xff1a;2s 空间限制&#xff1a;26MB 题目描述&#xff1a; 在一个幼儿园里面有n个小朋友&#xff0c;分别编号1,2,…,n。在这些小朋友中有一些小朋友互为朋友关系&#xff0c;总共有m对朋友。 作为幼儿…

2023中国(上海)国际糖果及巧克力展览会

时 间&#xff1a;2023年6月6&#xff5e;8日 地 点&#xff1a;上海世贸展览馆 ◆ 》》》展会概况&#xff1a; 随着人们生活水平的不断提高以及新功能、新口味的糖果巧克力产品涌现&#xff0c;糖果及巧克力市场的需求正在进一步扩大。近几年&#xff0c;中国…

知识付费海哥:分享6个技巧,让你的课程卖爆

哈喽&#xff0c;大家好&#xff0c;我是海哥&#xff0c;知识付费变现创业教练&#xff0c;教育公司培训总监&#xff0c;从事知识付费变现咨询10年&#xff0c;已助力3000人实现知识付费变现。 课程要卖爆&#xff0c;课程策划为你分享6招&#xff0c;必知必会&#xff0c;缺…

三星三防s8计算机功能在哪里,三星s8三防版怎么样 三防版三星s8配置参数介绍...

三星s8三防版怎么样 三防版三星s8配置参数介绍 来源&#xff1a;www.18183.com作者&#xff1a;似水流年时间&#xff1a;2017-06-26 三星s8三防版怎么样呢&#xff1f;本文小编为您带来三星s8三防版怎么样 三防版三星s8配置参数介绍。 三星s8三防版怎么样呢?本文小编为您带来…

android系统应用s8,三星S8的预装软件终于可以卸载了

(原标题&#xff1a;不再“耍流氓”&#xff01;S8的预装软件终于可以卸载了) [摘要]原厂状态下有过多预装软件一直是三星手机的一个槽点&#xff0c;Galaxy S8已经发生了重大改变&#xff1a;允许用户卸载、关闭大多数预装软件。 据Android Authority网站报道&#xff0c;还记…