同样是今天做bzoj时做到的,感觉能力范围之内的就做了,也是蛮简单的

1034: [ZJOI2008]泡泡堂BNB

Time Limit: 10 Sec Memory Limit: 162 MB

Submit: 1876 Solved: 993

[Submit][Status][Discuss]

Description

第XXXX届NOI期间,为了加强各省选手之间的交流,组委会决定组织一场省际电子竞技大赛,每一个省的代表队由n名选手组成,比赛的项目是老少咸宜的网络游戏泡泡堂。每一场比赛前,对阵双方的教练向组委会提交一份参赛选手的名单,决定了选手上场的顺序,一经确定,不得修改。比赛中,双方的一号选手,二号选手……,n号选手捉对厮杀,共进行n场比赛。每胜一场比赛得2分,平一场得1分,输一场不得分。最终将双方的单场得分相加得出总分,总分高的队伍晋级(总分相同抽签决定)。作为浙江队的领队,你已经在事先将各省所有选手的泡泡堂水平了解的一清二楚,并将其用一个实力值来衡量。为简化问题,我们假定选手在游戏中完全不受任何外界因素干扰,即实力强的选手一定可以战胜实力弱的选手,而两个实力相同的选手一定会战平。由于完全不知道对手会使用何种策略来确定出场顺序,所以所有的队伍都采取了这样一种策略,就是完全随机决定出场顺序。当然你不想这样不明不白的进行比赛。你想事先了解一下在最好与最坏的情况下,浙江队最终分别能得到多少分。

Input

输入的第一行为一个整数n,表示每支代表队的人数。接下来n行,每行一个整数,描述了n位浙江队的选手的实力值。接下来n行,每行一个整数,描述了你的对手的n位选手的实力值。 20%的数据中,1<=n<=10; 40%的数据中,1<=n<=100; 60%的数据中,1<=n<=1000; 100%的数据中,1<=n<=100000,且所有选手的实力值在0到10000000之间。

Output

包括两个用空格隔开的整数,分别表示浙江队在最好与最坏的情况下分别能得多少分。不要在行末输出多余的空白字符。

Sample Input

2

1

3

2

4

Sample Output

2 0

样例说明

我们分别称4位选手为A,B,C,D。则可能出现以下4种对战方式,最好情况下可得2分,最坏情况下得0分。

一   二   三   四

浙江  ??? 结果  浙江  ??? 结果  浙江  ??? 结果  浙江  ??? 结果

一号选手 A C 负 A D 负 B C 胜 B D 负

二号选手 B D 负 B C 胜 A D 负 A C 负

总得分 0 2 2 0

**这个题贪心的思想,策略可以参照田忌赛马,求最大得分时

如果浙江的最大,大于其他省的最大 直接比赛即可

如果浙江最小的,大于其他省的最小 同样直接比赛

如果相同就从另一端比较,都相同自然都平手就好

最小得分的话反之(不过此处我用的是用总分前去其他省最大值得到的)**

下面是代码:

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int zj[100010]={0};//存数浙江的选手
int qt[100010]={0};//其他省的选手
int main()
{
int n;
scanf("%d",&n);
for (int i=1; i<=n; i++)
scanf("%d",&zj[i]);
for (int i=1; i<=n; i++)
scanf("%d",&qt[i]);
sort(zj+1,zj+n+1);
sort(qt+1,qt+n+1);
int maxans=0,minans=0;
int zjzq=n,qtzq=n,zjzr=1,qtzr=1;//zr=最弱,zq=最强
while (true)
{
if (zj[zjzq]>qt[qtzq])
{maxans+=2;zjzq--;qtzq--;}
else
if (zj[zjzr]>qt[qtzr])
{maxans+=2;zjzr++;qtzr++;}
else
{maxans+=(zj[zjzr]==qt[qtzq]);zjzr++;qtzq--;}
if (zjzr>zjzq || qtzr>qtzq)
break;
}//算最大值
zjzq=n,qtzq=n,zjzr=1,qtzr=1;
while (true)
{
if (qt[qtzq]>zj[zjzq])
{minans+=2;qtzq--;zjzq--;}
else
if (qt[qtzr]>zj[zjzr])
{minans+=2;zjzr++;qtzr++;}
else
{minans+=(qt[qtzr]==zj[zjzq]);qtzr++;zjzq--;}
if (zjzr>zjzq || qtzr>qtzq)
break;
}//通过求第二个省最大的,来求最小值
printf("%d %d\n",maxans,2*n-minans);//最高得分是全胜,用全胜减去其他省最多得分,可求出浙江最小得分
return 0;
}

BZOJ 1034 泡泡堂BNB 贪心+简单博弈的更多相关文章

  1. BZOJ [ZJOI2008]泡泡堂BNB 贪心

    [ZJOI2008]泡泡堂BNB Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://www.lydsy.com/JudgeOnline/proble ...

  2. bzoj 1034 泡泡堂BNB

    题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1034 题解: 很明显的贪心,读过田忌赛马的典故就很容易能想出来,分成三种情况讨论: < ...

  3. 【题解】BZOJ1034 [ZJOI2008]泡泡堂BNB(贪心)

    [题解]BZOJ1034 [ZJOI2008]泡泡堂BNB(贪心) 考虑直接模拟田忌赛马... 我的最小比你的大,直接上 我的最大比你的大,直接上 otherwise,我小换你大 考虑最劣,由于每次比 ...

  4. BZOJ 1034: [ZJOI2008]泡泡堂BNB( 贪心 )

    贪心...用最弱的赢最弱的,用最强的赢最强的,否则用最弱的和最强的比... (贴个官方题解:将双方的选手均按从强到弱排序,然后第一次扫描尽可能用当前剩下的选手中能赢对手当前最强选手中最弱的一个去赢得胜 ...

  5. [BZOJ1034][ZJOI2008]泡泡堂BNB 贪心

    1034: [ZJOI2008]泡泡堂BNB Time Limit: 10 Sec  Memory Limit: 162 MB Submit: 3414  Solved: 1739 [Submit][ ...

  6. 【BZOJ1034】[ZJOI2008]泡泡堂BNB 贪心

    Description 第XXXX届NOI期间,为了加强各省选手之间的交流,组委会决定组织一场省际电子竞技大赛,每一个省的代表队由n名选手组成,比赛的项目是老少咸宜的网络游戏泡泡堂.每一场比赛前,对阵 ...

  7. bzoj 1034 [ ZJOI 2008 ] 泡泡堂BNB —— 贪心

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1034 一开始想了个很麻烦的贪心做法,对于每个 a[i],找第一个大于它的 b 匹配…… 然后 ...

  8. BZOJ 1034: [ZJOI2008]泡泡堂BNB 贪心+排序

    比较神奇的贪心 有点类似于田忌赛马. 如果我方最弱强于对面最弱,则直接最弱pk最弱. 如果我方最强强于对面最强,那么直接最强间pk. 否则,试着用我方最弱 pk 对方最强,看是否能打成平手. code ...

  9. bzoj 1034 [ZJOI2008]泡泡堂BNB——贪心

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1034 原来觉得和 bzoj4977跳伞求生 有点像(虽然还没做). 所以对于a[ ]从小到大 ...

随机推荐

  1. Linux commands frequently used

    touch <filename>.sh gedit <filename>.sh bash <filename>.sh & ps auxw|grep < ...

  2. VS2013 抛出 stackoverflow exception 的追踪

    本公司使用VWG.Caslte ActiveRecord.CSLA.net .Quantz.net 等组件做为公司的开发基础,自2007年以来,一直工作正常,但最近(2015.12月)以来,打开MDA ...

  3. 学习C++.Primer.Plus 6 分支语句和逻辑操作符

    ||. &&操作符是一个顺序点 < 操作符从左向右结合 ; < age < )//17<age为true, = 1,肯定 < 27.所以为整个条件为tru ...

  4. vmware安装cent os 6.5 + oracle 11g xe + jboss eap 6.2 + weblogic 12c+ webshpere mq 7.5

    前言: mac系统发展速度确实很快,短短数年,mac os上已经能网银支付(中行.招行.工商.支付宝等均已全面支持mac os了),windows上的经典常用软件:qq.飞信.旺旺.有道词典.有道云笔 ...

  5. 数据挖掘系列(9)——BP神经网络算法与实践

    神经网络曾经很火,有过一段低迷期,现在因为深度学习的原因继续火起来了.神经网络有很多种:前向传输网络.反向传输网络.递归神经网络.卷积神经网络等.本文介绍基本的反向传输神经网络(Backpropaga ...

  6. mongo集群

    http://blog.csdn.net/canot/article/details/50739359 http://blog.csdn.net/bluejoe2000/article/details ...

  7. MVC———用自定义扩展类实现验证

    废话少说,直接上图 →_→ NO.1 NO.2 NO.3 NO.4 NO.5 NO.6 NO.7 NO.8 NO.9 NO.10 NO.11 NO.12 NO.13 NO.14 NO.15 NO.16 ...

  8. centos 服务器内存管理

    du su /目录/ 查看改目录大小 ls -lht /  查看文件详情,显示文件大小(直观) df -h 查看系统内存占用情况

  9. Centos|Rhel搭建vsftp

    vsftp,在ftp传输中相对安全的 01.安装vsftpd yum install -y vsftpd 版本信息: Installed PackagesName        : vsftpdArc ...

  10. 1117Mysql prepare预处理语句

    转自http://www.jb51.net/article/81378.htm 综述:一般用来拼凑SQL然后执行 MySQL 5.1对服务器一方的预制语句提供支持.如果您使用合适的客户端编程界面,则这 ...