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. 首先对操作数组排个序,再预处理 ...
随机推荐
- NFC framework
NFC framework introduce 1 NFC简介 对于NFC,是google在android4.0上推出来的,简单介绍下.近场通讯(NFC)是一系列短距离无线技术,一般需要4cm或者更短 ...
- iOS-CALayer
iOS开发UI篇—CAlayer层的属性 一.position和anchorPoint 1.简单介绍 CALayer有2个非常重要的属性:position和anchorPoint @property ...
- editplus文本编辑器
EditPlus中文破解版是一款功能强大的文本编辑器,拥有无限制的撤消与重做.英文拼字检查.自动换行.列数标记.搜寻取代.同时编辑多文件.全屏幕浏览功能.还有一个好用的功能,就是它有监视剪贴板的功能, ...
- [转]p2p端口映射工具 dog-tunnel
[转]p2p端口映射工具 dog-tunnel http://www.oschina.net/p/dog-tunnel 狗洞是一个高速的 P2P 端口映射工具,同时支持Socks5代理. 0.5版后开 ...
- verilog语法之memory存储器
命名规则:reg[n-1:0] 存储器名[m-1:0] 说明:这是m个n位的存储器,该存储器的地址范围是0-(m-1) 举例:reg[3:0] memo[255:0] 说明:这是256个4位存储器,该 ...
- 14.quartus联合modelsim仿真
在quartus调用modelsim仿真过程中,出现了一个错误,如下所示: Check the NativeLink log file I:/Quartus11.0/Myproject/testi_n ...
- FPGA保留信号的语句
(*synthesis,keep*) (*synthesis,probe_port,keep *) 例:(*synthesis,probe_port,keep *) wire e; 可用于wire型和 ...
- Ubuntu 关闭锁屏界面的 on-screen keyboard
试了试屏幕键盘,在 系统设置里开启了,又关了,但是在屏幕解锁时总是出现 screen keyboard,老烦人了,不知到在哪里关闭了,系统设置里面都关了,网上搜了解决办法,原来在这里 把 show w ...
- SQLiteAPI函数详解
使用的过程根据使用的函数大致分为如下几个过程: sqlite3_open() sqlite3_prepare() sqlite3_step() sqlite3_column() sqlite3_fin ...
- P2763: [JLOI2011]飞行路线
然而WA了呀,这道分层图,也是不明白为什么WA了=-= ; maxn=; points=; type node=record f,t,l:longint; end; var n,m,k,i,j,u,v ...