题目传送门


  分析:一道策略游戏题,要求最大期望得分和最小期望得分。首先分析最大,很显然是可以用一种类似于田忌赛马的思维来做,将两队的实力按照从大到小(其实从小到大也可以)排序,然后就按照顺序比较,可能会出现以下几种情况:

  我方最大>对方最大,则用我方最大对抗对方最大

  我方最小>对方最小,则用我方最小对抗对方最小

  如果以上两种情况都不满足,则用我方最小去对抗对方最大,为我方最大争取机会。

  这个正确性应该不难证明,那么最大的得分就这么A(shui)掉了;

  再看最小得分,发现直接求最小得分并不容易,那么转换一下思维,求最大失分,再用2n-最大失分,正确性易证。那么求最大失分思维就和上面一样,只需转换一下:

  我方最大<对方最大,则用我方最大对抗对方最大

  我方最小<对方最小,则用我方最小对抗对方最小

  如果以上两种情况都不满足,则比较我方最大与对方最小,如果相等,则失一分,否则不失分。

  然后,这题就这样水过去了!

  Code:

//It is made by HolseLee on 7th Apr 2018
//Luogu.org P2587
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<cmath>
#include<iostream>
#include<iomanip>
#include<algorithm>
using namespace std;
const int N=1e5+7;
int n,a[N],b[N];
int ans,hm,tm,he,te;
inline int read()
{char ch=getchar();int num=0;bool flag=false;while(ch<'0'||ch>'9'){if(ch=='-')flag=true;ch=getchar();}while(ch>='0'&&ch<='9'){num=num*10+ch-'0';ch=getchar();}return flag?-num:num;
}
bool cmp(int x,int y)
{return x>y;}
int main()
{n=read();for(int i=1;i<=n;i++)a[i]=read();for(int i=1;i<=n;i++)b[i]=read();sort(a+1,a+n+1,cmp);sort(b+1,b+n+1,cmp);tm=te=n;hm=he=1;while(hm<=tm){if(a[hm]>b[he])ans+=2,hm++,he++;else if(a[tm]>b[te])ans+=2,tm--,te--;else ans+=(a[tm]==b[he]),he++,tm--;}printf("%d ",ans);hm=he=1;tm=te=n;ans=0;while(hm<=tm){if(a[hm]<b[he])ans+=2,hm++,he++;else if(a[tm]<b[te])ans+=2,tm--,te--;else ans+=(a[hm]==b[te]),hm++,te--;}printf("%d",2*n-ans);return 0;
}

转载于:https://www.cnblogs.com/cytus/p/8819556.html

洛谷P2587 [ZJOI2008] 泡泡堂相关推荐

  1. 洛谷P2587 [ZJOI2008]泡泡堂

    传送门 1368 泡泡堂 省队选拔赛  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 大师 Master 题解 题目描述 Description 第XXXX届NOI期间,为了加 ...

  2. luogu P2587 [ZJOI2008]泡泡堂

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

  3. P2587 [ZJOI2008]泡泡堂 神仙贪心

    思路:贪心 提交:1次(看了题解$QwQ$) 题解: 若我方最弱可以干掉对方最弱,则干: 否则若我方最强可以干掉对方最强,则干: 否则若我方最弱与对方最强平手,则平: 其实貌似一二条是可以互换的,主要 ...

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

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

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

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

  6. 【BZOJ】1034: [ZJOI2008]泡泡堂BNB(贪心)

    http://www.lydsy.com/JudgeOnline/problem.php?id=1034 弱的比弱的强就用,强的比强的强就用: 否则弱的和强的比. 输的情况就是2n-ans(b,a), ...

  7. 【bzoj1034】[ZJOI2008]泡泡堂BNB 贪心

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

  8. [ZJOI2008]泡泡堂(田忌赛马贪心)

    problem 洛谷链接 solution 田忌赛马孪生兄弟. 浙江选手最坏情况就是外省最好情况,所以本质上两个子问题是同一个做法. 相信所有人都是读完题后就有田忌赛马的思想了.(如果还没上过小学语文 ...

  9. Bzoj1034 [ZJOI2008]泡泡堂BNB

    Time Limit: 10 Sec  Memory Limit: 162 MB Submit: 2935  Solved: 1495 Description 第XXXX届NOI期间,为了加强各省选手 ...

最新文章

  1. Asp.net MVC2.0系列文章-添加操作
  2. 项目: 实时钟表(C语言)
  3. 线程的应用-如何应用多线程
  4. Visual Studio Code五月版本更新
  5. stm32看门狗_STM32单片机:独立看门狗、窗口看门狗的配置
  6. Socket编程模式理解与对比
  7. oracle--索引的使用
  8. 字典序的理解以及python实现
  9. java实现的端口映射器
  10. 计算机中cpu是指什么意思,CPU是什么?CPU又是什么意思?
  11. Python操作Excel表格(二)
  12. 简单的快递管理系统(c语言版)--大一下的总结
  13. 信号与系统—让我们来了解信号
  14. c0000005 Access Violation
  15. 非常有趣有特色的个人博客网站源码
  16. 【深度学习】什么是扩散模型(Diffusion Models),为什么它们是图像生成的一大进步?...
  17. 周记(2020.3.22-2020.3.28)
  18. 2020年《财富》中国500强排行榜数据爬取,看看都有哪些
  19. Binary String
  20. 医咖会免费STATA教程学习笔记——简单线性回归

热门文章

  1. linux下使用nginx搭建集群,CentOS(linux) 下Nginx的安装(Nginx+Tomcat集群第一步)
  2. docker多个容器一起打包_docker如何将容器打包成镜像
  3. for each java_Java 实例 - for 和 foreach循环使用
  4. 焊接件技术要求怎么写_钣金焊接件生锈了怎么办
  5. android navigation bar高度,Android获取屏幕真实高度包含NavigationBar(底部虚拟按键)
  6. Linux下部署Tomcat项目笔记
  7. Linux文本截取命令cut​笔记
  8. SQL命令大全-中英文对照
  9. knime如何连接mysql_knime怎么连接MySQL?
  10. Jest + React Testing Library 单测总结