这个题。。。是一道神奇的贪心题。。。

根据田忌赛马的原理。。。

先假使两队都符合田忌和齐王的配置。。。

我们可以发现如果我们用当前最弱的。。。去和对方当前最强的打。。。

然后一直按照这个方案。。。当我方最强的能打过对方最强的时候。。。

在用我方当前最强的。。。和对方当前最强的。。。打。。。

我们就能得到最多的分数了。。。

但这里并不完全符合这种配置。。。

那么我们可以考虑。。。如果我方最弱的。。。能打过对方最弱的。。。

这种情况是不是该优先考虑呢???

答案是肯定的。。。这里就不多做证明了。。。大佬们肯定能想出来。。。

至于最低分。。。反过来就行了。。。

代码:

#include<iostream>
#include<cstdio>
#include<algorithm>
#define maxn 100010
using namespace std; int n,own[maxn],foe[maxn]; inline void best()
{
int ans=;
int head1=,tail1=n;
int head2=,tail2=n;
while(head1<=tail1)
{
if(own[head1]>foe[head2])
{
ans+=;
head1++,head2++;
}
else if(own[tail1]>foe[tail2])
{
ans+=;
tail1--,tail2--;
}
else
{
if(own[head1]==foe[tail2])
ans++;
head1++,tail2--;
}
}
printf("%d ",ans);
} inline void wost()
{
int ans=;
int head1=,tail1=n;
int head2=,tail2=n;
while(head1<=tail1)
{
if(own[head1]<foe[head2])
head1++,head2++;
else if(own[tail1]<foe[tail2])
tail1--,tail2--;
else
{
ans+=own[tail1]>foe[head2] ? :;
tail1--; head2++;
}
}
printf("%d",ans);
} int main()
{
scanf("%d",&n);
for(int i=;i<=n;i++) scanf("%d",&own[i]);
for(int i=;i<=n;i++) scanf("%d",&foe[i]);
sort(own+,own++n);
sort(foe+,foe++n);
best();
wost();
}

呆码

[ZJOI2008]泡泡堂BNB的更多相关文章

  1. ZJOI2008泡泡堂BNB

    1034: [ZJOI2008]泡泡堂BNB Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 1305  Solved: 676[Submit][Sta ...

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

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

  3. bzoj 1034: [ZJOI2008]泡泡堂BNB 貪心

    1034: [ZJOI2008]泡泡堂BNB Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 1398  Solved: 727[Submit][Sta ...

  4. BZOJ 1034 [ZJOI2008]泡泡堂BNB

    1034: [ZJOI2008]泡泡堂BNB Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 1757  Solved: 928[Submit][Sta ...

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

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

  6. 1034: [ZJOI2008]泡泡堂BNB

    1034: [ZJOI2008]泡泡堂BNB Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 3234  Solved: 1655[Submit][St ...

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

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

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

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

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

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

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

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

随机推荐

  1. 20 Interesting WPF Projects on CodePlex

    20 Interesting WPF Projects on CodePlex (Some for Silverlight too) Pete Brown - 22 November 2010   I ...

  2. OSPF - 1,基础

    1,OSPF知识点a)在OSPF中,如果是环回口宣告进OSPF,不管宣告时配置的是多少位掩码,路由器收到的都是32位.(EIGRP配了多少位就收到多少位).好处:EIGRP中,在PING包发起时如果在 ...

  3. LeetCode--401--二进制手表

    问题描述: 二进制手表顶部有 4 个 LED 代表小时(0-11),底部的 6 个 LED 代表分钟(0-59). 每个 LED 代表一个 0 或 1,最低位在右侧. 例如,上面的二进制手表读取 “3 ...

  4. 20181013xlVba成绩报表优化

    Public Sub 成绩报表优化() Application.ScreenUpdating = False Application.DisplayAlerts = False Application ...

  5. Python全栈开发,Day2(in,while else,格式化输出,逻辑运算符,int与bool转换,编码)

    一.in的使用 in 操作符用于判断关键字是否存在于变量中 ? 1 2 a = '男孩wusir' print('男孩' in a) 执行输出: True in是整体匹配,不会拆分匹配. ? 1 2 ...

  6. Remove Element leetcode java

    问题描述: Given an array and a value, remove all instances of that value in place and return the new len ...

  7. 根据id获取某一类的最大最小值

    ->selectRaw('max(marking_price) as maxPrice, min(marking_price) as minPrice, product_id') ->gr ...

  8. 巧用JSON

    在开发的过程中,对json的接触基本是前端页面搭建完成后,对后台数据的请求.如果接口尚未提供,一般情况下会先按规定的要求写好需要的json模拟出请求的后台数据.json的格式有很多种,关注的主体是da ...

  9. 第二阶段——个人工作总结DAY08

    1.昨天做了什么:昨天就时间轴的问题,已经实现了界面的显示. 2.今天打算做什么:打算继续学习<第一行代码>中关于异步任务,多线程,访问网络等后台的知识. 3.遇到的困难:还不太懂具体的步 ...

  10. LVM(逻辑卷管理)从0到实战

    一.请看图 二.LVM——Logical Volume Manager LVM就是动态卷管理,可以将多个硬盘和硬盘分区做成一个逻辑卷,并把这个逻辑卷作为一个整体来统一管理,动态对分区进行扩缩空间大小, ...