ZOJ 3757 Alice and Bob and Cue Sports(模拟)
题意 : 玩台球。Alice 和 Bob,一共可以进行m次,Alice 先打。有一个白球和n个标有不同标号的球,称目标球为当前在桌子上的除了白球以外的数值最小的球,默认白球的标号为0。如果白球落入洞中,要把白球拿出来放在桌子上,如果是其他的球就不拿哪怕是犯规打进去的。每打一局(每一局代表每人打一杆)时当发生以下三种行为时算是犯规,会将相应的罚分加给对方,自己不减分。
- 白球没有打中任何球。将目标球的数值加到对方的分数上。
- 白球没有入洞且至少打中一个球,一开始没有打中目标球或者一开始同时打中不止一个球。就把一开始打中的球中数值最大的加到对方的分数上。
- 白球入洞且至少打中一个球。就把一开始打中的球中数值最大的加到对方的分数上。
如果没有犯规的话,就把洞里所有的球的数值总和加到自己的分数上。但如果是犯了规才把目标球打入洞中,或者是打入洞中的球没有目标球,上边这个数值总和就要再加给对方而不是自己。
思路 : 模拟了好几个小时没模拟出来。。。。。。。其实就是注意细节的问题,该怎么处理什么的。一开始没有把数值总和再加给对方,以为这个是在不犯规的情况下才加的,直接错了好几遍。。。。。。
#include <iostream>
#include <stdio.h>
#include <string.h>
#include <algorithm> using namespace std; int AP,BP;
int ap[],aq[];
int a[];
int hashh[]; int main()
{
int n,m;
int p,q;
while(scanf("%d %d",&n,&m)!=EOF)
{
AP = ;
BP = ;
memset(hashh,,sizeof (hashh));
for(int i = ; i <= n ; i++)
scanf("%d",&a[i]);
sort(a+ ,a++n);
int k = ;
bool flag = false ;
for(int i = ; i <= m ; i++)
{
bool flag1 = ,flag2 = ;
int maxx = - ;
int sum = ;
scanf("%d",&p);
while(hashh[a[k]])//找当前局的目标球
k++ ;
for(int i = ; i <= p ; i++)
{
scanf("%d",&ap[i]);
maxx = max(maxx,ap[i]) ;
if(ap[i] == a[k] && p == ) flag1 = ; //只有目标球入洞
}
scanf("%d",&q);
for(int i = ; i <= q ; i++)
{
scanf("%d",&aq[i]);
sum += aq[i];
hashh[aq[i]] ++ ;
if(aq[i] == ) flag2 = ;//cue球进洞了
}
if(!flag)
{
if(p == )
{
flag = true ;
BP += a[k];
}
else if(flag2 == && flag1 == )
{
flag = true ;
BP += maxx ;
BP += sum ;
}
else if(flag2 && p)
{
flag = true ;
BP += maxx;
BP += sum;
}
else if(hashh[a[k]] == )
{
flag = true ;
BP += sum;
}
else
AP += sum;
}
else
{
if(p == )
{
flag = false ;
AP += a[k];
}
else if(flag2 == && flag1 == )
{
flag = false ;
AP += maxx ;
AP += sum ;
}
else if(flag2 && p)
{
flag = false ;
AP += maxx;
AP += sum;
}
else if(hashh[a[k]] == )//目标球未进洞
{
flag = false ;
AP += sum;
}
else
BP += sum;
}
}
printf("%d : %d\n",AP,BP);
}
return ;
}
ZOJ 3757 Alice and Bob and Cue Sports(模拟)的更多相关文章
- zoj 3757 Alice and Bob and Cue Sports 模拟
题目链接: http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3757 #include<cstdio> #incl ...
- zoj 3757 Alice and Bob and Cue Sports 月赛A 模拟
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3757 题意:根据所给的台球规则,按照每次的结果计算最终两人的得分 ...
- ZOJ 3757 Alice and Bod 模拟
上次的ZJU月赛题,规则比较复杂,当时就连题意都没摸清楚,只觉得非常复杂 比完后敲啊敲啊敲,连续WA啊,该反思下自己,没按照题意来设置条件,题目中说了 白球入袋并且... 给对手加分 ,白球未入袋并且 ...
- ZOJ 3529 A Game Between Alice and Bob(博弈论-sg函数)
ZOJ 3529 - A Game Between Alice and Bob Time Limit:5000MS Memory Limit:262144KB 64bit IO For ...
- ZOJ 3529 A Game Between Alice and Bob 博弈好题
A Game Between Alice and Bob Time Limit: 5 Seconds Memory Limit: 262144 KB Alice and Bob play t ...
- 2014 Super Training #6 A Alice and Bob --SG函数
原题: ZOJ 3666 http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3666 博弈问题. 题意:给你1~N个位置,N是最 ...
- 2016中国大学生程序设计竞赛 - 网络选拔赛 J. Alice and Bob
Alice and Bob Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others) ...
- bzoj4730: Alice和Bob又在玩游戏
Description Alice和Bob在玩游戏.有n个节点,m条边(0<=m<=n-1),构成若干棵有根树,每棵树的根节点是该连通块内编号最 小的点.Alice和Bob轮流操作,每回合 ...
- Alice and Bob(2013年山东省第四届ACM大学生程序设计竞赛)
Alice and Bob Time Limit: 1000ms Memory limit: 65536K 题目描述 Alice and Bob like playing games very m ...
随机推荐
- 常用sql时间字符转化
这边主要用到2个函数 convert() cast() cast是对数据字符类型的转化,例如: cast(date as datetime) 这样就将date字段转化成为时间类型了 因为常用到 ...
- 最小化安装Centos7后的部署(个人)
一.配置网络 1. 自动获取IP地址 使用ip addr查看网络设备名称,我的网卡名称为enp0s3.找到设备名称后配置enp0s3的配置文件. 打开Vi /etc/sysconfig/networ ...
- vs2008团队资源管理器安装步骤
1.先装 VS2008TeamExplorer { NOTE: 要区分中英文版本Microsoft Visual Studio 2008 Service Pack 1 (iso) VS2008SP1C ...
- Stanford parser学习:LexicalizedParser类分析
上次(http://www.cnblogs.com/stGeekpower/p/3457746.html)主要是对应于javadoc写了下LexicalizedParser类main函数的功能,这次看 ...
- 亚马逊左侧导航(jquery.menuaim.js)
jquery.menuaim.js 主菜单 <div class="active"> <ul class="dropdown-menu" ...
- How to enables AX email functionality without Outlook
/***************************************************************** (C) Copyright DENTSPLY Internatio ...
- 无法访问Fedora的samba共享
配置好samba服务后,却发现windows无法访问.经过多次试验与fedora的防火墙有关系. 关闭防火墙: #service iptables stop 或清空规则: #iptables -F w ...
- System V消息队列
消息的基本属性 System V的消息属性包含在一个msqid_ds的结构中 struct msqid_ds{ struct ipc_cerm msg_perm; //读取权限, 0644, 0777 ...
- VS2010打开VS2012解决方法
VS2012中对C#的支持度非常好,不管是编写方便程度(不需要插件就能高亮代码及代码自动提示功能),还对MFC的一些功能优化很多. 我们可以修改两个工程文件来把VS2012的工程文件一直到VS2010 ...
- Java 图形编程 一:入门
package second; import java.awt.Color; import java.awt.Frame; import java.awt.event.WindowAdapter; i ...