问题描述:

爱丽丝和鲍勃都非常热爱足球,两人都是先锋。他们都擅长足球控制。一场足球比赛后的一天,他们进行了一场有趣的比赛,他们将足球直接射向球门。球门前有N个足球,他们轮流进行这场比赛。例如,如果轮到爱丽丝,爱丽丝可以选择一些足球(足球的数量必须等于或小于 M)并将它们射向前方。由于足球的质量不是很好,足球不是一个完整的球体,只能滚动其周长的整数倍。而且由于他们的摩擦力和力量的限制,他们无法将足球射出超过L厘米的距离。当然,他们知道足球的半径是 R 厘米。爱丽丝和鲍勃非常喜欢这个游戏。如果他们俩都拥有无限的智商和精准的射门技巧,你能猜出谁能赢得这场足球比赛吗?顺便说一句,虽然爱丽丝和鲍勃一样强壮,但爱丽丝是个女孩,所以她会先出手。

分析:题目大意是两名球员轮流从N个球中挑出不多于M个射门,每个球半径都是R,离球门S。每次只能踢出L以内的距离。进最后一个球者胜,求谁有必胜策略?我们发现对数据进行处理之后,题目等价于给出n堆石子,每堆石子中每次最多取k个石子,每次最多选取m个石子堆做操作的博弈问题,首先我们将每堆石子堆对k+1取模简化运算,取一堆石子上的石子的做法我们是对所有的石子堆的sg值进行xor运算得到sg值,xor又称为半加运算,只进行加法而不进位,对于选取m堆石子的博弈我们的xor则是对于m+1进制下的半加运算,所以我们按位计算这个sg值,模拟m+1进制下的半加运算即可得到答案。

输入:

输入由几个案例组成,每个案例包含两行。
对于每个测试用例,第一行包含 4 个整数 N、M、L 和 R(1 <= M <= N <= 30, 0 < L < 100000000, 0 < R < 10000),用一个空格分隔。N是足球的数量,M是一名球员一回合可以射出的最大足球数,L是一名球员可以射出的最大距离,R是足球的半径。
下一行包含 N 个数字,S(1), S(2), ..., S(N) (0 < S(i) < 100000000),它们描述了足球和球门之间的距离。

输出:

对于每种情况,输出都包含一行描述获胜者的姓名。

样本输入:

样本输出:

程序代码:

#include <cstdio>
#include <cstring>
#include <cmath>
using namespace std;
const int N=30;
const double PI=acos(-1.0);
int n,m,l,r,a[N],sg[N];
int dis(int s)                        //看能否进球
{return (int)(s/(2*PI*r))+1;
}
bool solve(){                        //博弈函数memset(sg,0,sizeof(sg));int k=dis(l);for(int i=0;i<n;i++)for(int j=0,g=dis(a[i])%k;sg[j]+=g&1,g;j++,g>>=1);for(int i=0;i<30;i++)if(sg[i]%(m+1))return 1;return 0;
}
int main(){while(~scanf("%d%d%d%d",&n,&m,&l,&r)){for(int i=0;i<n;i++)scanf("%d",&a[i]);puts(solve()?"Alice":"Bob");}return 0;
}

yjg

poj2315足球游戏相关推荐

  1. android 足球游戏,足球游戏哪个好玩,安卓单机足球游戏哪个好玩

    足球游戏 实况8好玩吗? 经典!!非常经典!! 足球足球街机游戏好玩吗 反正我觉得挺好玩的.话说你们不觉得新浪有借很棒么,人人都能借五千,而且提额相当容易,还很安全. 什么样的足球游戏好玩 那当然是实 ...

  2. 5月14日社区技术直播【Analytics Zoo上的分布式TensorFlow训练AI玩FIFA足球游戏】

    主题: Analytics Zoo上的分布式TensorFlow训练AI玩FIFA足球游戏 时间: 2020.5.14 19:00 参与方式: 扫描下方海报二维码加入钉钉群 或者 届时点击直播间直接观 ...

  3. ChatGPT介绍世界杯历史与编写足球游戏python程序

    ChatGPT聊天机器人最近非常流行,是由OpenAI于本月发布的.花了一点时间注册了一个账号,如有需要帮助注册的可以随时与我交流.注册过程相对有一些复杂. 除了常规的聊天对话功能之外,ChatGPT ...

  4. 世界杯太精彩了,带大家用Python做个足球游戏,边玩游戏边看比赛

    文章目录 Python零基础快速制作足球游戏(附源代码) 前言 一.Python环境说明 二.游戏程序说明 1.游戏开始界面 2.人物移动规则说明,可支持两位玩家 3.足球规则 4.主方法调取 三.游 ...

  5. 用遗传算法加强足球游戏的人工智能

    终于等够了三个月,杂志的约定已经到期,可以把这篇文章发表到网络跟大家分享.本文原发表于<游戏创造>杂志www.chinagcn.com,如蒙转载,请保留原文和本声明完整,并注明转载自恋花蝶 ...

  6. Python足球游戏源代码,热血足球小游戏,可双人玩

    基于Python pygame的足球游戏源代码,游戏可以双人玩,游戏入口程序为soccer.py. 控制人物一 方向键:wasd ,射门键:r 控制人物二,方向键: 键盘方向键,射门键:k 程序运行截 ...

  7. 足球游戏源码《沙滩足球》beach soccer源码H5+安卓+IOS三端源码

    cocos creator2.1.1足球游戏源码<沙滩足球>beach soccer源码H5+安卓+IOS三端源码,开发脚本为javaScript方便扩展和阅读,支持cocos creat ...

  8. android 疯狂足球原码,基于Android的疯狂足球游戏源代码

    基于Android的疯狂足球游戏源代码. 相关文件下载在Linux公社的1号FTP服务器里,下载地址: 用户名:www.linuxidc.com 密码:www.muu.cc 在 2011年LinuxI ...

  9. 卡塔尔世界杯︱足球游戏的打开方式

    距离卡塔尔世界杯开始还有一周的时间,你为此做好什么准备了吗? 一些狂热的球迷为了追求极致的观感和身临其境感,不惜在电视.音响上下重金:也有一些为了享受世界杯热闹氛围的人,囤好零食,或是和好友早早约好酒 ...

最新文章

  1. linux nmon 系统性能监控 报表生成
  2. “TI门外汉”网路知识笔记七 快速以太网通道
  3. CTF(pwn)攻防世界warmup
  4. 【本站作品】机器学习数学基础专辑
  5. 计算机网络计算机应用答案,计算机网络与应用(含答案).doc
  6. php二维数组的取值与转换
  7. 深入理解CRITICAL_SECTION
  8. [界面开发新秀]免费的AYUI,开发360领航版系列教程[2/40]
  9. 你真会用setTimeout吗?
  10. (C/C++) 算法,编程题
  11. Genesis Shards即将向用户发放Gen Ticket NFT
  12. 如果微信被运维删库、跑路,会造成什么恐怖的后果?
  13. 2. 线性表的顺序结构
  14. 用VIM编写C/C++程序
  15. Java生成32位全局唯一id
  16. linux445端口是什么,端口445怎么关 445端口是什么服务 445病毒是什么
  17. Quartz 表达式
  18. php api 实例maccms,api.php · do do/maccms10 - Gitee.com
  19. 【参考文献】支气管上皮细胞培养方法
  20. pci-e服务器显卡性能,RTX 2080 Ti PCI-E性能测试:3.0 x16终于成为必需

热门文章

  1. 小程序长按识别公众号二维码、个人微信号、企业微信号、微信群、-已实现
  2. UI设计规范-全文篇
  3. Arch Linux 安装 Anbox
  4. Java程序员在用的大数据工具
  5. cad工具箱详细讲解_CAD工具箱的12种功能详解
  6. nginx master-worker工作模式简析
  7. ScrollView分屏显示
  8. FX5U modbustcp通讯
  9. [敏捷开发培训] 构建Agile MVP
  10. ANSI转义序列详解