hdu 4023 2011上海赛区网络赛C 贪心+模拟
以为是贪心,结果不是,2333
贪心最后对自己绝对有利的情况
#include<cstdio>
#include<iostream>
#include<algorithm>
#include<cstring>
#include<cmath>
#include<queue>
#include<map>
using namespace std;
#define MOD 1000000007
const int INF=0x3f3f3f3f;
const double eps=1e-;
typedef long long ll;
#define cl(a) memset(a,0,sizeof(a))
#define ts printf("*****\n");
const int MAXN=;
int n,m,tt;
int a[MAXN];
int main()
{
int i,j,k;
#ifndef ONLINE_JUDGE
freopen("1.in","r",stdin);
#endif
scanf("%d",&tt);
int ca=;
while(tt--)
{
for(i=;i<=;i++) scanf("%d",a+i);
int st=,sum[],a1,a2; //st记录当前轮到谁了,sum[0]记录的是A的稳定步数,sum[1]记录的是B的稳定步数
cl(sum);
sum[]+=a[]*;
sum[]+=a[]*;
if(a[]!=) //只有一个的时候,谁先放谁的稳定步数会多一步
{
if(a[]%==)
{
sum[]++;
st^=;
}
}
a1=a[]+a[]; //对A有利
a2=a[]+a[]; //对B有利
if(a1>a2)
{
int w=a1-a2;
sum[]+=w/; //A只能获得其中一半的稳定步数,B什么都得不到
if(w%==)
{
if(st==)
{
sum[]++;
}
st^=;
}
}
else if(a2>a1)
{
int w=a2-a1;
sum[]+=w/; //B只能获得其中一半的稳定步数,A什么都得不到
if(w%==)
{
if(st==)
{
sum[]++;
}
st^=;
}
}
a1=a[]+a[]+a[]+a[];
st^=a1&; //仅仅改变步数
a1=a[]+a[]; //对B最不利,B要多走这个
a2=a[]+a[]; //对A最不利
if(a1>a2)
{
int w=a1-a2;
sum[]+=w/; //A只能获得其中一半的稳定步数,B什么都得不到
if(w%==)
{
if(st==)
{
sum[]++;
}
st^=;
}
}
else if(a2>a1)
{
int w=a2-a1;
sum[]+=w/; //B只能获得其中一半的稳定步数,A什么都得不到
if(w%==)
{
if(st==)
{
sum[]++;
}
st^=;
}
}
printf("Case #%d: ",ca++);
if(sum[]==sum[])
{
if(st)puts("Alice");
else puts("Bob");
}
else if(sum[]>sum[])
puts("Alice");
else puts("Bob");
}
}
hdu 4023 2011上海赛区网络赛C 贪心+模拟的更多相关文章
- hdu 4026 2011上海赛区网络赛F TSP ****
没看过TSP,先mark //4838039 2011-10-27 23:04:15 Accepted 4026 2343MS 31044K 3143 B C++ Geners //状态压缩DP的TS ...
- hdu 4025 2011上海赛区网络赛E 压缩 ***
直接T了,居然可以这么剪枝 题解链接:点我 #include<cstdio> #include<map> #include<cstring> #define ll ...
- hdu 4028 2011上海赛区网络赛H dp+map离散
一开始用搜索直接超时,看题解会的 #include<iostream> #include<cstdio> #include<map> #include<cst ...
- hdu 4027 2011上海赛区网络赛G 线段树 成段平方根 ***
不能直接使用成段增减的那种,因为一段和的平方根不等于平方根的和,直接记录是否为1,是1就不需要更新了 #include<cstdio> #include<iostream> # ...
- hdu 4038 2011成都赛区网络赛H 贪心 ***
贪心策略 1.使负数为偶数个,然后负数就不用管了 2.0变为1 3.1变为2 4.2变为3 5.若此时操作数剩1,则3+1,否则填个1+1,然后回到5
- hdu 4035 2011成都赛区网络赛E 概率dp ****
太吊了,反正我不会 /* HDU 4035 dp求期望的题. 题意: 有n个房间,由n-1条隧道连通起来,实际上就形成了一棵树, 从结点1出发,开始走,在每个结点i都有3种可能: 1.被杀死,回到结点 ...
- hdu 4044 2011北京赛区网络赛E 树形dp ****
专题训练 #include<stdio.h> #include<iostream> #include<string.h> #include<algorithm ...
- hdu 4050 2011北京赛区网络赛K 概率dp ***
题目:给出1-n连续的方格,从0开始,每一个格子有4个状态,左右脚交替,向右跳,而且每一步的步长必须在给定的区间之内.当跳出n个格子或者没有格子可以跳的时候就结束了,求出游戏的期望步数 0:表示不能到 ...
- hdu 4049 2011北京赛区网络赛J 状压dp ***
cl少用在for循环里 #include<cstdio> #include<iostream> #include<algorithm> #include<cs ...
随机推荐
- 用ConfigParser模块读写配置文件——Python
对于功能较多.考虑用户体验的程序,配置功能是必不可少的,如何存储程序的各种配置? 1)可以用全局变量,不过全局变量具有易失性,程序崩溃或者关闭之后配置就没了,再者配置太多,将变量分配到哪里也是需要考虑 ...
- CMake入门以及学习笔记
使用cef3替代chromium内核开发产品过程中,第一次接触到系统构建,使用了最常见的CMake.CMake虽然在构建系统中用的比较多,但是使用到的程序员还是很少的.现在在国内能找到的相关资料和博客 ...
- unity3d 特殊文件夹和脚本编译顺序
unity3d 特殊文件夹和脚本编译顺序 转自http://blog.csdn.net/u010019717/article/details/40474631 大多数情况下,您可以选择任何你喜欢的文件 ...
- IOS lib(.a)库冲突解决办法
在引入第三方lib(.a)库时,经常会由于第三方lib库中又引入同你现有工程相同的开源代码而造成.o冲突,最近在集成汉王名片识别时发生ASIHttp的.o冲突.我想说的是像这种开源的使用率很高的源代码 ...
- linux下的audit服务
audit ['ɔːdɪt] 审计 auditd是linux的一个审计服务. 这是man下的解释 auditd is the userspace component to the Linux A ...
- WPS Office文档未保存怎么恢复
有时候用WPS Office时,文档还没保存,因为电脑卡死或者关机,再次打开时编辑的内容都不见了,这个时候可以利用WPS自带的备份功能来恢复文档,表格.幻灯片.文档都是可以的. 首先单击WPS左上角的 ...
- 算法手记 之 数据结构(线段树详解)(POJ 3468)
依然延续第一篇读书笔记,这一篇是基于<ACM/ICPC 算法训练教程>上关于线段树的讲解的总结和修改(这本书在线段树这里Error非常多),但是总体来说这本书关于具体算法的讲解和案例都是不 ...
- ffmpeg-20160512-git-bin
ESC 退出 0 进度条开关 1 屏幕原始大小 2 屏幕1/2大小 3 屏幕1/3大小 4 屏幕1/4大小 S 下一帧 [ -2秒 ] +2秒 ; -1秒 ' +1秒 下一个帧 -> -5秒 f ...
- SQL中关于字符串的处理
DECLARE @STR VARCHAR(MAX),@PRAM VARCHAR(20)SET @STR='中华人民共和国万岁'--字符串连接SET @STR=@STR+'an'+@STR --字符串拆 ...
- 解压zip文件中文文件名乱码问题
主要原因是,在windows下压缩文件时,是以系统的默认编码(gbk,gb18030)来压缩,zip文件并没有声明编码的格式,因此,linux下解压缩时,也会使用系统默认的格式(utf-8)解压缩,编 ...