首页 技术 正文
技术 2022年11月15日
0 收藏 452 点赞 4,106 浏览 1508 个字

题目链接

题意 : 玩台球。Alice 和 Bob,一共可以进行m次,Alice 先打。有一个白球和n个标有不同标号的球,称目标球为当前在桌子上的除了白球以外的数值最小的球,默认白球的标号为0。如果白球落入洞中,要把白球拿出来放在桌子上,如果是其他的球就不拿哪怕是犯规打进去的。每打一局(每一局代表每人打一杆)时当发生以下三种行为时算是犯规,会将相应的罚分加给对方,自己不减分。

  1. 白球没有打中任何球。将目标球的数值加到对方的分数上。
  2. 白球没有入洞且至少打中一个球,一开始没有打中目标球或者一开始同时打中不止一个球。就把一开始打中的球中数值最大的加到对方的分数上。
  3. 白球入洞且至少打中一个球。就把一开始打中的球中数值最大的加到对方的分数上。

如果没有犯规的话,就把洞里所有的球的数值总和加到自己的分数上。但如果是犯了规才把目标球打入洞中,或者是打入洞中的球没有目标球,上边这个数值总和就要再加给对方而不是自己。

思路 : 模拟了好几个小时没模拟出来。。。。。。。其实就是注意细节的问题,该怎么处理什么的。一开始没有把数值总和再加给对方,以为这个是在不犯规的情况下才加的,直接错了好几遍。。。。。。

 #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 ;
}
相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:8,918
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,444
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,255
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,069
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,702
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,741