博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HDU 4023 贪心+博弈
阅读量:2442 次
发布时间:2019-05-10

本文共 3771 字,大约阅读时间需要 12 分钟。

/*******************************************************************************   上海赛区网络赛博弈水题,但是当时最后才A掉,一看那个数据量这么小,肯定枚举一下就行了,具体解法就是列出对于每块tile,Alice跟Bob分别先放后,两人能得到的分数,然后枚举每块累加一下就完事了~唯一的trick是对于第一种和第二中tile,需要对两人走的顺序分别考虑,具体看代码就能理解。代码写太搓了,很多都是粘的。。。*******************************************************************************/#include 
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;#define LOWBIT(x) ( (x) & ( (x) ^ ( (x) - 1 ) ) )#define CLR(x, k) memset((x), (k), sizeof(x))#define CPY(t, s) memcpy((t), (s), sizeof(s))#define SC(t, s) static_cast
(s)#define LEN(s) static_cast
( strlen((s)) )#define SZ(s) static_cast
( (s).size() )typedef double LF;typedef __int64 LL; //VCtypedef unsigned __int64 ULL;typedef pair
PII;typedef pair
PLL;typedef pair
PDD;typedef vector
VI;typedef vector
VC;typedef vector
VF;typedef vector
VS;template
T sqa(const T & x){ return x * x;}template
T gcd(T a, T b){ if (!a || !b) { return max(a, b); } T t; while (t = a % b) { a = b; b = t; } return b;};const int INF_INT = 0x3f3f3f3f;const LL INF_LL = 0x7fffffffffffffffLL; //15fconst double oo = 10e9;const double eps = 10e-7;const double PI = acos(-1.0);#define ONLINE_JUDGEconst int MAXN = 16;int test, tiles[MAXN];void ace(){ int cas = 1; int alice, bob; int total; for (cin >> test; test--; ++cas) { CLR(tiles, 0); total = 0; for (int i = 0; i < 15; ++i) { cin >> tiles[i]; total += tiles[i]; } alice = 0; bob = 0; for (int ind = 0; total > 0; --total, ind ^= 1) { if (tiles[14] != 0) { ind ? (alice += 0, bob += 2) : (alice += 2, bob += 0); --tiles[14]; } else if (tiles[2] != 0) { ind ? (alice += 0, bob += 2) : (alice += 1, bob += 0); --tiles[2]; } else if (tiles[3] != 0) { ind ? (alice += 0, bob += 2) : (alice += 1, bob += 0); --tiles[3]; } else if (tiles[4] != 0) { ind ? (alice += 0, bob += 1) : (alice += 2, bob += 0); --tiles[4]; } else if (tiles[5] != 0) { ind ? (alice += 0, bob += 1) : (alice += 2, bob += 0); --tiles[5]; } else if (tiles[10] != 0) { ind ? (alice += 0, bob += 1) : (alice += 1, bob += 0); --tiles[10]; } else if (tiles[11] != 0) { ind ? (alice += 0, bob += 1) : (alice += 1, bob += 0); --tiles[11]; } else if (tiles[12] != 0) { ind ? (alice += 0, bob += 1) : (alice += 1, bob += 0); --tiles[12]; } else if (tiles[13] != 0) { ind ? (alice += 0, bob += 1) : (alice += 1, bob += 0); --tiles[13]; } else if (tiles[6] != 0) { ind ? (alice += 1, bob += 1) : (alice += 1, bob += 0); --tiles[6]; } else if (tiles[7] != 0) { ind ? (alice += 1, bob += 1) : (alice += 1, bob += 0); --tiles[7]; } else if (tiles[8] != 0) { ind ? (alice += 0, bob += 1) : (alice += 1, bob += 1); --tiles[8]; } else if (tiles[9] != 0) { ind ? (alice += 0, bob += 1) : (alice += 1, bob += 1); --tiles[9]; } if (ind) //唯一的trick { if (tiles[1] != 0) { ind ? (alice += 0, bob += 2) : (alice += 0, bob += 2); --tiles[1]; } else if (tiles[0] != 0) { ind ? (alice += 2, bob += 0) : (alice += 2, bob += 0); --tiles[0]; } } else { if (tiles[0] != 0) { ind ? (alice += 2, bob += 0) : (alice += 2, bob += 0); --tiles[0]; } else if (tiles[1] != 0) { ind ? (alice += 0, bob += 2) : (alice += 0, bob += 2); --tiles[1]; } } } cout << "Case #" << cas << ": "; cout << (alice > bob ? "Alice" : "Bob") << endl; }}int main(){#ifndef ONLINE_JUDGE freopen("in.txt", "r", stdin);#endif ace(); return 0;}/*******************************************************************************Test Data35 4 0 0 0 0 0 0 0 0 0 0 0 0 05 5 0 0 0 0 0 0 0 0 0 0 0 0 0100 100 0 0 0 0 0 0 0 0 0 2 1 0 0*******************************************************************************/

转载地址:http://bibqb.baihongyu.com/

你可能感兴趣的文章
SCO UNIX学习宝典 高级进阶(转)
查看>>
Oracle9i RAC for RedFlag Linux DC4.1 32bit 安装流程(转)
查看>>
Sybase和Oracle安装过程中常遇到的问题(转)
查看>>
红帽Linux新系统整合虚拟技术 实现简易操作(转)
查看>>
Linux下/etc/default/boot文件字段说明(转)
查看>>
Linux壁纸系列三十四(转)
查看>>
使用带有Dtrace的FreeBSD(转)
查看>>
Fedora Core 4硬盘安装方法(转)
查看>>
常用的系统状态查询命令(转)
查看>>
『推荐』上G的linux视频教程和电子书FTP下载,速度快内容实用!(转)
查看>>
AIX系统日常管理(转)
查看>>
Fedora Core 6的新特性(转)
查看>>
不得不说 僵尸网络导致垃圾邮件猛增(转)
查看>>
linux网络知识:TCP/IP设置内容(转)
查看>>
GNOME帮助Linux应用于商业桌面环境(转)
查看>>
linux网络知识:与网络设置有关的几个文件(转)
查看>>
Linux文件内容查询命令(转)
查看>>
libc.a 文件恢复(转)
查看>>
SCO UNIX上cpio命令详细用法(转)
查看>>
Linux系统可卸载内核模块完全指南(下)(转)
查看>>