牛客小白赛7 B自杀游戏 (博弈论,SG函数)
链接:https://www.nowcoder.com/acm/contest/190/B
来源:牛客网
时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 32768K,其他语言65536K
64bit IO Format: %lld
题目描述
Alice和Bob产生了不可调节的矛盾,于是他们相约一起玩一个自杀游戏,输的人就会从这个世界上消失。
游戏开始时,Alice手上拿着一个定时炸弹,炸弹有个倒计时t。炸弹在t=0时刻会爆炸,此时手上拿着炸弹的人会从这个世界上消失。为了增加游戏乐趣,他们约定每个人拿到炸弹后可以选择将炸弹的时间调快d秒(d ∈ [a,b]),或者不调。每次交换炸弹会消耗1秒(假设调节炸弹时间不需要消耗时间)。
问题来了,如果双方都足够聪明,谁会活下去呢?
输入描述:
第一行有三个整数t,a,b,分别表示炸弹初始时刻的倒计时,可调节时间的范围。(0 ≤ t ≤ 105,1 ≤ a ≤ b ≤ 10)
输出描述:
若Alice存活则输出"Alice",若Bob存活则输出"Bob"。
示例1
输入
复制
6 3 4
输出
复制
Alice
说明
Alice只需要将炸弹调快3秒后再给Bob,Bob就会拿到一个2秒后爆炸的炸弹。
记得每次调节后交换的1S要考虑到 f 数组里,还有a,b范围
#include<bits/stdc++.h>
//#include <iostream>
//#pragma GCC optimize(2)
using namespace std;
#define maxn 100005
#define inf 1e18
typedef long long ll;
const ll mod = 1e9+7;
ll t,a,b,sg[maxn],f[15];
bool s[maxn];
void getsg(ll x)
{for(ll i = 1;i <= x; i++){memset(s,0,sizeof(s));for(ll j = a-1; f[j]<=i && j<=b; j++)s[ sg[ i-f[j] ] ] = 1;for(ll j = 0; ; j++)if(!s[j]){sg[i] = j;break;}}return ;
}
int main()
{ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);cin >> t >> a >> b;for(ll i = a; i <= b; i++) //注意f[i] = i+1;f[a-1] = 1;getsg(maxn);if(sg[t])cout << "Alice" << endl;elsecout << "Bob" << endl;return 0;
}
牛客小白赛7 B自杀游戏 (博弈论,SG函数)相关推荐
- 牛客小白月赛7 B自杀游戏(sg博弈)
sg博弈结论为,下个状态sg的补集的最小值. 题目 #include<bits/stdc++.h> using namespace std; const int maxn=1e5+9; b ...
- 牛客小白月赛7 B 自杀游戏
自杀游戏 思路: sg函数 代码: #pragma GCC optimize(2) #pragma GCC optimize(3) #pragma GCC optimize(4) #include&l ...
- 牛客小白赛190615场
夜色已经很晚了,所以我长话短说 1.表单 链接:https://ac.nowcoder.com/acm/contest/917/C 来源:牛客网 输入描述: 第一行两个整数n,Q 后n行每行一个字符串 ...
- 题解——牛客网Wannafly挑战赛23 B-游戏 (SG函数)
前言 比赛的时候没学过SG函数的蒟蒻以为是道结论题,但是不是QwQ 和dummyummy巨佬一起推了快三个小时的规律 最后去问了真正的巨佬__stdcall __stdcall面带微笑的告诉我们,这是 ...
- 【NOI模拟赛】纸老虎博弈(博弈论SG函数,长链剖分)
题面 某天,C 和 K 觉得很无聊,于是决定玩一个经典小游戏: 在一棵有 nnn 个结点的有根树上,标号为 iii 的节点上有 aia_iai 个棋子.游戏时玩家轮流操作,每次可以将任意一个节点 u ...
- [AcWing] 1319.移棋子游戏 博弈论 Sg函数板子题
题目链接:1319.移棋子游戏 题解 好久没写博弈论的题了,写几道复习一下,博弈论SG主要由两大部分组成:SG函数和SG定理 SG(x)=mex(S),其中S是x的后继状态的SG函数值集合,mex(S ...
- 牛客小白赛60(F.被抓住的小竹)61(E.排队)(数学+推公式)
文章目录 前言 逆序对是典型题,常用统计数组内逆序对用树状数组.但是求排列中的总逆序对数量需要利用组合数学推导公式. F.被抓住的小竹 E.排队 总结 前言 逆序对是典型题,常用统计数组内逆序对用树状 ...
- 牛客小白月赛3 C.博弈
牛客小白月赛3 C.博弈 题目链接 题目描述 XHRlyb 在和 Cwbc 玩游戏. 在一个多重集合中有在 [l,r] 中的全部整数各一个,即 l,l+1,l+2,......,rl,l+1,l+2, ...
- 牛客小白月赛3 B.躲藏
牛客小白月赛3 B.躲藏 题目链接 题目描述 XHRlyb和她的小伙伴Cwbc在玩捉迷藏游戏. Cwbc藏在多个不区分大小写的字符串中. 好奇的XHRlyb想知道,在每个字符串中Cwbc作为子序列分别 ...
最新文章
- VMware提示:已将该虚拟机配置为使用 64 位客户机操作系统。但是,无法执行 64 位操作。解决方案
- github建站之路
- VTK修炼之道37:图像平滑_高斯滤波器
- Cisco C2960 升级IOS
- 使用 VMControl 2.4 实现多网络的 Power 服务器捕捉和系统部署
- 微信小程序 高德地图知道两点求道路_微信小程序——计算2点之间的距离
- 前端笔记-对webpack和vue的基本认识
- 郁闷的开始--8月21日
- 彩虹云商城 最新彩虹代刷V6.9.0免授权纯净完整版
- 十天学会单片机Day4串行口通信
- 2021年度国内网络安全事件总结
- 5位数的数字黑洞是多少_数字黑洞求解问题
- 机器学习:02 特征工程和决策树回归
- LaTeX论文图片排版
- ReactNative常用插件使用
- jupyter notebook如何打开md文件
- ORA-01400: cannot insert NULL into | 通过SQL链接服务器 往Oracle库的表中 插入默认值问题
- Appium学习笔记17-手机操作API之分辨率
- 对象(创建对象、构造函数)
- JAVA知识体系之分布式篇(七)——Redis