zoj 3757 Alice and Bob and Cue Sports 月赛A 模拟
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3757
题意:根据所给的台球规则,按照每次的结果计算最终两人的得分
单纯的模拟题,分支比较多写起来较繁琐
注意区分犯规与进球得分的规则:
只要有犯规行为,都要按照规则给对手加分。无论是否进球。
当进球时,如果有犯规行为,不仅分要加给对手,还要加上犯规惩罚
#include<cmath>
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
#define maxn 10005
int v[];
int a,b;
bool flag;//碰谁了
bool flag1;//先碰的球ok
bool flag2;//有球进球
bool flag4;//没碰到球
bool flag3;//target
bool flag0;//白球进洞
int _min,_max;
int firsth;//最大的
int vis[maxn];
int low,high; int main()
{
int n,m,i;
flag=true;
while(~scanf("%d%d",&n,&m))
{
flag=true;
a=b=;
for(i=;i<=n;i++)
scanf("%d",&v[i]);
sort(v,v+n);
low=;//high=n;
_min=v[];//_max=v[n];
memset(vis,false,sizeof(vis));
while(m--)
{
int p,q;
scanf("%d",&p);
flag4=false;
if(p!=)
{
if(p==)
{
flag4=true;
}
else
{
flag1=false;
int x;
firsth=;
while(p--)
{
scanf("%d",&x);
if(x>firsth)
firsth=x;
}
}
}
else
{
scanf("%d",&p);
if(p!=_min)
flag1=false;
else
flag1=true;
firsth=p;
}
scanf("%d",&q);//进的球
if(q==)
flag2=false;
else
flag2=true;
int all=;
int y;
flag0=false;
flag3=false;
for(i=;i<q;i++)
{
scanf("%d",&y);
if(y==)
{
flag0=true;//白球进洞
}
if(y==_min)
{
flag3=true;//target
}
all+=y;
vis[y]=true;
}
if(flag4)//没碰到任何球
{
if(flag)
b+=_min;
else
a+=_min;
flag=!flag;
}
else//碰到球了
{
if(flag0)//白球进洞
{
if(flag)b+=firsth+all;
else a+=firsth+all;
flag=!flag;
}
else//白球没进洞
{
if(flag2)//有球进洞
{
if(flag3)//target
{
if(flag1)
{
if(flag)a+=all;
else b+=all;
}
else//没有先碰target进球了
{
if(flag)b+=all+firsth;
else a+=all+firsth;
flag=!flag;
}
}
else
{
if(!flag1)
{
if(flag)b+=firsth;
else a+=firsth;
}
if(flag)b+=all;
else a+=all;
flag=!flag;
}
}
else//没球进洞
{
if(!flag1)
{
if(flag)
b+=firsth;
else a+=firsth;
}
flag=!flag;
}
}
}
if(vis[_min])
{
while(vis[v[low]]&&low<=n)
{
low++;
}
_min=v[low];
}
}
printf("%d : %d\n",a,b);
}
return ;
}
(P.S.写的比较丑陋,分支可以优化)
zoj 3757 Alice and Bob and Cue Sports 月赛A 模拟的更多相关文章
- ZOJ 3757 Alice and Bob and Cue Sports(模拟)
题目链接 题意 : 玩台球.Alice 和 Bob,一共可以进行m次,Alice 先打.有一个白球和n个标有不同标号的球,称目标球为当前在桌子上的除了白球以外的数值最小的球,默认白球的标号为0.如果白 ...
- 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 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 ...
随机推荐
- LINQ 101——约束、投影、排序
什么是LINQ:LINQ 是一组 .NET Framework 扩展模块集合,内含语言集成查询.集合以及转换操作.它使用查询的本机语言语法来扩展 C# 和 Visual Basic,并提供利用这些功能 ...
- Spring Boot笔记(一)
Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置.通过 ...
- ACM HDU 1021 Fibonacci Again
#include<iostream> using namespace std; int main() { int n; while(cin>>n) { if((n+1)%4== ...
- [学习笔记]设计模式之Chain of Responsibility
为方便读者,本文已添加至索引: 设计模式 学习笔记索引 写在前面 最近时间比较紧,所以发文的速度相对较慢了.但是看到园子里有很多朋友对设计模式感兴趣,我感觉很高兴,能够和大家一起学习这些知识. 之前的 ...
- (转)log4j日志级别设置成DEBUG时输出Html代码等问题:
log4j日志级别设置成DEBUG时输出Html代码等问题: 问题: log4j日志级别设置成DEBUG时会输出很多信息,包括一些Html代码 解决方案: log4j的控制是树形,所以在log4j.p ...
- js学习--DOM操作详解大全 前奏(认识DOM)
一 . 节点属性 DOM 是树型结构,相应的,可以通过一些节点属性来遍历节点树: 方法 说明 nodeName 节点名称,相当于tagName.属性节点返回属性名,文本节点返回#text.nodeNa ...
- php 函数 array_slice
array_slice array_slice -- 从数组中取出一段 <?php$input = array("a", ); // returns "c ...
- Docker Machine
Docker Machine http://dockone.io/article/1485?utm_source=tuicool&utm_medium=referral 本地安装与使用 Doc ...
- spring- properties 读取的五种方式
转至:http://www.cnblogs.com/hafiz/p/5876243.html 方式1.通过context:property-placeholder加载配置文件jdbc.properti ...
- [BZOJ 3680] 吊打XXX 【模拟退火】
题目链接:BZOJ - 3680 题目分析 这道题是SLYZ的神犇把JSOI的平衡点那道题改了一下题面变成了吊打GTY神犇..Orz 第一次写模拟退火,只能照着别人的代码写,我看的是PoPoQQQ神犇 ...