hdu 4023 Game 博弈论
思路:
将15种分成5类:
1.1和2为一类;
2.3,4,5,6为一类;
3.7,8,9,10为一类;
4.11,12,13,14,15为一类;
5.15为一类。
比较各类的优先级,就会发现放置的顺序为5->2->4->3->1.
代码如下:
#include<iostream>
#include<stdio.h>
#include<algorithm>
#include<iomanip>
#include<cmath>
#include<cstring>
#include<vector>
#define ll __int64
#define pi acos(-1.0)
#define MAX 50000
using namespace std;
int p[];
int fun1(int n)
{
if(n&) return n-;
return n;
}
int fun2(int n)
{
if(n&) return n+;
return n;
}
int main(){
int t,a,b,k,i,j,ca=,ans;
scanf("%d",&t);
while(t--){
a=b=;
int num1,num2,num34,num56,num78,num910,num11_14,num15;
bool flag=;
for(i=;i<=;i++)
scanf("%d",&p[i]);
if(p[]>p[]) num1=p[]-p[],num2=;
else num2=p[]-p[],num1=;
if(p[]+p[]>p[]+p[]) num34=p[]+p[]-p[]-p[],num56=;
else num56=p[]+p[]-p[]-p[],num34=;
if(p[]+p[]>p[]+p[]) num78=p[]+p[]-p[]-p[],num910=;
else num910=p[]+p[]-p[]-p[],num78=;
num11_14=p[]+p[]+p[]+p[];
num15=p[];
if(p[]&){
a+=;
flag=;
}
if(num34){
if(flag){
a+=num34/;
b+=fun2(num34);
if(num34&) flag=;
}
else{
a+=(num34+)/;
b+=fun1(num34);
if(num34&) flag=;
}
}
else{
if(flag){
b+=(num56+)/;
a+=fun1(num56);
if(num56&) flag=;
}
else{
a+=fun2(num56);
b+=num56/;
if(num56&) flag=;
}
}
if(num11_14&){
if(flag) b++;
else a++;
flag=!flag;
}
if(num78){
if(flag){//B
b+=(num78+)/;
a+=num78;
if(num78&) flag=;
}
else{//A
a+=num78;
b+=num78/;
if(num78&) flag=;
}
}
else{
if(!flag){ //A
a+=(num910+)/;
b+=num910;
if(num910&) flag=;
}
else{//B
b+=num910;
a+=num910/;
if(num910&) flag=;
}
}
a+=num1*;
b+=num2*;
printf("Case #%d: ",++ca);
puts(a>b?"Alice":"Bob");
}
return ;
}
hdu 4023 Game 博弈论的更多相关文章
- HDU 5512 Meeting 博弈论
Meeting Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=5512 ...
- hdu 4678 Mine 博弈论
这是一题简单的博弈论!! 所有的空白+边界的数字(个数为n)为一堆,容易推出其SG函数值为n%2+1: 其他所有的数字(个数为m)的SG值为m%2. 再就是用dfs将空白部分搜一下即可!(注意细节) ...
- hdu 4664 Triangulation 博弈论
看到这题时,当时还不会做,也没搞懂sg函数,于是狠狠的钻研了下博弈论,渐渐的知道了sg函数…… 现在在来做这题就很容易了,1A 打表容易发现在80左右的时候就出现循环节了 代码如下: #include ...
- hdu 4023 2011上海赛区网络赛C 贪心+模拟
以为是贪心,结果不是,2333 贪心最后对自己绝对有利的情况 点我 #include<cstdio> #include<iostream> #include<algori ...
- HDU 4023 (博弈 贪心 模拟) Game
如果硬要说这算是博弈题目的话,那这个博弈是不公平博弈(partizan games),因为双方面对同一个局面做出来的决策是不一样的. 我们平时做的博弈都是公平博弈(impartial games),所 ...
- hdu 4701 Game 博弈论
思路: ▶ 设 win(i,x,y) 表示当前可以买的物品是 i,先手有 x 元,后 手有 y 元时,先手是否必胜 ▶ win(i,x,y) ⇐⇒∃j((j > i)∧(x ≥ si−sj)∧¬ ...
- hdu 3389 Game 博弈论
思路: 其本质为阶梯博弈; 阶梯博弈:博弈在一列阶梯上进行,每个阶梯上放着自然数个点,两个人进行阶梯博弈... 每一步则是将一个集体上的若干个点( >=1 )移到前面去,最后没有点可以移 ...
- Game HDU - 3389 (博弈论)
Bob and Alice are playing a new game. There are n boxes which have been numbered from 1 to n. Each b ...
- HDU.1536.S-Nim(博弈论 Nim)
题目链接 \(Description\) 给定一个集合S,每次只能拿S中某个元素个数的石子.每组数据有多组询问,询问给出m堆石子个数,问先手是否必胜.有多组数据. 1. 首先对操作数组排个序,再预处理 ...
随机推荐
- android----Java DES加密算法工具类
DESUtil类 public class DESUtil { private static byte[] iv = {0x12, 0x34, 0x56, 0x78, (byte) 0x90, (by ...
- Effective Objective-C 2.0之Note.01
1.在类的头文件中尽量少引入其他头文件 除非确有必要,否则不要引入头文件.一般来说,应在某个类的头文件中使用向前声明来提及别的类,并在实现文件中引入那些类的头文件.这样做可以尽量降低类之间的耦合(co ...
- firebreath 在谷歌和火狐浏览器下的调试 以及打包
在寻找插件开发资料的过程中找到了一个开发浏览器插件的开源项目——firebreath firebreath的安装以及测试我就不再叙述了,可以参考大神的文章 . http://www.blogjava. ...
- rapid js framework
allcountjs.com http://mean.io/ https://www.meteor.com/ http://sailsjs.org/#!/ nodejs 博客 http://hexo. ...
- Convert Sorted Array to Binary Search Tree
Convert Sorted Array to Binary Search Tree Given an array where elements are sorted in ascending ord ...
- c++函数内部声明函数,在函数外面实现函数是可以的
这个具体有什么用我也不大清楚,只知道可以这样 #include <iostream> //#include "header1.h" using namespace st ...
- UITableView设置cell为不可选?
本文选自StackOverflow(简称:SOF)精选问答汇总系列文章之一,本系列文章将为读者分享国外最优质的精彩问与答,供读者学习和了解国外最新技术.本文将为读者讲解UITableView如何设置单 ...
- 【每日scrum】NO.7
Yesterday:学习和设计路线的编程 Today:编写代码 Problem:.在设计查询参观路线的时候,整个逻辑特别的混乱,设想了各种树,图以及网的遍历问题,但经过多次与同学的交流以及网上的查询资 ...
- mysql 重置root 账户密码
windows: 打开命令行窗口,停止mysql服务: Net stop mysql启动mysql,一般到mysql的安装路径,找到 mysqld-nt.exe <<< ...
- 【BZOJ】【TJOI2015】线性代数
网络流/最小割/最大权闭合图 2333好开心,除了一开始把$500^2$算成25000……导致数组没开够RE了一发,可以算是一次AC~ 咳咳还是回归正题来说题解吧: 一拿到这道题,我就想:这是什么鬼玩 ...