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 ...
随机推荐
- linux修改时区,时间格式
修改为上海的时区: 查看当前时区 date cp -vf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime vim /etc/sysconfig/cl ...
- AIX filesystemcache引发的Oracle事故
链接地址: http://www.jydba.net/aix-filesystemcache%e5%bc%95%e5%8f%91%e7%9a%84oracle%e4%ba%8b%e6%95%85/ A ...
- 设置UILabel可变高度(根据文本内容自动适应高度)
@property(nonatomic)UILabel *showLabel; // 计算文本所占高度,计算出来之后设置label的高度 // 第一个参数:字体大小,字体大小/样式影响计算字体的高 ...
- Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (111)解决方法
登陆mysql的时候,出现了这个问题: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' ( ...
- MATLAB中的函数的归总
字符串操作函数 1. 函数eval可以用来执行用字符串表示的表达式 2. 函数deblank可以去掉字符串末尾的所有空格 3. 函数findstr可以用来在长 ...
- 彻底删除sql2008r2
一. SQL2008卸载. 1.从控制面板卸载 1)点击计算机右下角“开始”,点击“控制面板” 2)点击“卸载程序”. 3)在程序列表中找到“Microsoft SQL Server 2008” ...
- DOM 操作内容 innerText/innerHTML
DOM 操作内容 innerText/innerHTML innerText属性(firefox不支持,可用 textContent)var div = document.getElementById ...
- .net中String是引用类型还是值类型 以及 C#深层拷贝浅层拷贝
http://www.cnblogs.com/yank/archive/2011/10/24/2204145.html http://www.cnblogs.com/zwq194/archive/20 ...
- java 整体字体样式设置
两种方式: 1.UIManager.put("Button.font", new Font("MS UI Gothic", Font.PLAIN, 24)) ...
- python【第十五篇】JavaScript
大纲 1 简介 2 存在形式 3 放置位置 4 变量 5 注释 6 数据类型 7 时间处理 8 语句和异常 9 函数及其作用域 1.JS简介 JavaScript是世界上最流行的脚本语言,因为你在电脑 ...