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

考虑直接模拟田忌赛马...

  • 我的最小比你的大,直接上
  • 我的最大比你的大,直接上
  • otherwise,我小换你大

考虑最劣,由于每次比赛会产生且仅会产生\(2\)个积分,所以swap两个数组然后输出\(2n-ans\)即可。

实现的时候注意一次循环内只能产生一次比拼,不然可能导致一个人重复比赛两次...

//@winlere
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm> using namespace std; typedef long long ll;
inline int qr(){
register int ret=0,f=0;
register char c=getchar();
while(c<48||c>57)f|=c==45,c=getchar();
while(c>=48&&c<=57) ret=ret*10+c-48,c=getchar();
return f?-ret:ret;
}
const int maxn=1e6+5;
int data1[maxn],data2[maxn],n;
inline int getp(const int&x,const int&y){
if(x>y)return 2;
if(x==y)return 1;
return 0;
}
inline int getans(int*a,int*b){
int L1=1,L2=n,R1=1,R2=n,ret=0;
while(L1<=L2&&R1<=R2){
if(a[L2]>b[R2]) ret+=2,L2--,R2--;
else if(a[L1]>b[R1]) ret+=2,L1++,R1++;
else ret+=(a[L1]==b[R2]),L1++,R2--;
}
return ret;
}
int main(){
n=qr();
for(int t=1;t<=n;++t)data1[t]=qr();
for(int t=1;t<=n;++t)data2[t]=qr();
sort(data1+1,data1+n+1);
sort(data2+1,data2+n+1);
printf("%d %d\n",getans(data1,data2),2*n-getans(data2,data1));
return 0;
}

【题解】BZOJ1034 [ZJOI2008]泡泡堂BNB(贪心)的更多相关文章

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

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

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

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

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

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

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

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

  5. bzoj千题计划122:bzoj1034: [ZJOI2008]泡泡堂BNB

    http://www.lydsy.com/JudgeOnline/problem.php?id=1034 从小到大排序后 最大得分: 1.自己最小的>对方最小的,赢一场 2.自己最大的>对 ...

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

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

  7. BZOJ1034 [ZJOI2008]泡泡堂BNB

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

  8. [Bzoj1034][ZJOI2008]泡泡堂BNB(贪心)

    Description 题目链接 Solution 这题就是一个贪心, 如果最弱的能赢对方最弱的就赢 否则最强的能赢对面最强的就赢 否则最弱的换对面最强 Code #include <cstdi ...

  9. 【题解】 [ZJOI2008] 泡泡堂(贪心/二分图/动态规划)

    懒得复制,戳我戳我 Solution: 就是有一个贪心策略:(以下假设使\(A\)队分数更高) \(First:\)比较两个分值的最小值,如果\(A\)最小分比\(B\)最小分大就直接比较两个最小的, ...

随机推荐

  1. Python基础:06条件和循环

    1:条件表达式(三元操作符) Python 在很长的一段时间里没有条件表达式(C ? X : Y), 或称三元运算符.人们试着用 and 和 or 来模拟它, 但大多都是错误的. 根据 FAQ , 正 ...

  2. 大侦探福老师——幽灵Crash谜踪案

    闲鱼Flutter技术的基础设施已基本趋于稳定,就在我们准备松口气的时候,一个Crash却异军突起冲击着我们的稳定性防线!闲鱼技术火速成立侦探小组执行嫌犯侦查行动,经理重重磨难终于在一个隐蔽的角落将其 ...

  3. 在SAE上使用Flask插件

    因为我之前学习的时候使用的是虚拟环境,下载的所有需要用到的插件都在flask这个文件夹里面,SAE上Flask的版本和我本地用的版本对不上,导致有时候import都不对,于是我就把本地的环境直接放到S ...

  4. 17-1 djanjo进阶-路由,视图,模板

    一 路由系统进阶(urls.py) 动态路由 urls.py中通过正则表达式的分组匹配,捕获用户访问的url中的值,传递给视图函数1 分组匹配(通过圆括号): 相当于给视图函数传递 位置参数 例子: ...

  5. 20-2 orm分组和聚合以及在项目中执行的一些方法

    一  orm分组和聚合 参考:https://www.cnblogs.com/liwenzhou/p/8660826.html 1 表结构: # 第一张表 class Employee1(models ...

  6. Libev源码分析06:异步信号同步化--sigwait、sigwaitinfo、sigtimedwait和signalfd

    一:信号简述 信号是典型的异步事件.内核在某个信号出现时有三种处理方式: a:忽略信号,除了SIGKILL和SIGSTOP信号不能忽略外,其他大部分信号都可以被忽略: b:捕捉信号,也就是在信号发生时 ...

  7. WPS修订功能的使用

    WPS设置 设置用户名: 修改之后的效果:

  8. props & children

    一. choosing the type at runtime import React from 'react'; import { PhotoStory, VideoStory } from '. ...

  9. Python--day70--ORM查询练习

    ORM查询练习: import os import sys if __name__ == '__main__': # 加载Djang00项目的配置信息 os.environ.setdefault(&q ...

  10. hdu 2126 Buy the souvenirs(记录总方案数的01背包)

    Buy the souvenirs Time Limit: 10000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Other ...