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. 首先对操作数组排个序,再预处理 ...
随机推荐
- ES5 vs ES6
ES5中 var React = require('react-native'); ES6中 import React from 'react-native'; .babelrc文件中添加一下内容 { ...
- df du
df命令详细用法 a:显示全部的档案系统和各分割区的磁盘使用情形 i:显示i -nodes的使用量 k:大小用k来表示 (默认值) t:显示某一个档案系统的所有分割区磁盘使用量 x:显示不是某一个档案 ...
- json转换对象
JSON.parse(jsonstr); //可以将json字符串转换成json对象 JSON.stringify(jsonobj); //可以将json对象转换成json对符串
- 4.FPGA芯片管脚解释
用户I/O:不用解释了. 配置管脚: MSEL[1:0] 用于选择配置模式,比如AS.PS等. DATA0 FPGA串行数据输入,连接到配置器件的串行数据输出管脚. DCLK FPGA串行时钟输出 ...
- Windows下安装Cygwin
1.去官网下载Cygwin http://www.cygwin.com/ 注意32位和64位的选择,完了直接点击exe文件开始安装. 2.安装 (1)“下一步”: (2)“Install form I ...
- 新安装Ubuntu加载时提示“为/检查磁盘时发生严重错误”的解决方法
本文部分内容转载自: http://jingyan.baidu.com/article/0aa22375bbffbe88cc0d6419.html http://www.aichengxu.com/v ...
- js—对象
一.创建对象 var car = new Object(); var car = {}; 二.属性和方法 var car = { color : "red", run : func ...
- 百度翻译API
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs& ...
- 【HDOJ】【3516】Tree Construction
DP/四边形不等式 这题跟石子合并有点像…… dp[i][j]为将第 i 个点开始的 j 个点合并的最小代价. 易知有 dp[i][j]=min{dp[i][j] , dp[i][k-i+1]+dp[ ...
- JSP Workshop
http://www.cnblogs.com/ITtangtang/p/4126395.html 发现http://www.tutorialspoint.com/里的资料很全也很不错啊! 资料:htt ...