[ZJOI2008]泡泡堂BNB

这个题。。。是一道神奇的贪心题。。。
根据田忌赛马的原理。。。
先假使两队都符合田忌和齐王的配置。。。
我们可以发现如果我们用当前最弱的。。。去和对方当前最强的打。。。
然后一直按照这个方案。。。当我方最强的能打过对方最强的时候。。。
在用我方当前最强的。。。和对方当前最强的。。。打。。。
我们就能得到最多的分数了。。。
但这里并不完全符合这种配置。。。
那么我们可以考虑。。。如果我方最弱的。。。能打过对方最弱的。。。
这种情况是不是该优先考虑呢???
答案是肯定的。。。这里就不多做证明了。。。大佬们肯定能想出来。。。
至于最低分。。。反过来就行了。。。
代码:
#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的更多相关文章
- ZJOI2008泡泡堂BNB
1034: [ZJOI2008]泡泡堂BNB Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 1305 Solved: 676[Submit][Sta ...
- BZOJ [ZJOI2008]泡泡堂BNB 贪心
[ZJOI2008]泡泡堂BNB Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://www.lydsy.com/JudgeOnline/proble ...
- bzoj 1034: [ZJOI2008]泡泡堂BNB 貪心
1034: [ZJOI2008]泡泡堂BNB Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 1398 Solved: 727[Submit][Sta ...
- BZOJ 1034 [ZJOI2008]泡泡堂BNB
1034: [ZJOI2008]泡泡堂BNB Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 1757 Solved: 928[Submit][Sta ...
- BZOJ 1034: [ZJOI2008]泡泡堂BNB( 贪心 )
贪心...用最弱的赢最弱的,用最强的赢最强的,否则用最弱的和最强的比... (贴个官方题解:将双方的选手均按从强到弱排序,然后第一次扫描尽可能用当前剩下的选手中能赢对手当前最强选手中最弱的一个去赢得胜 ...
- 1034: [ZJOI2008]泡泡堂BNB
1034: [ZJOI2008]泡泡堂BNB Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 3234 Solved: 1655[Submit][St ...
- bzoj千题计划122:bzoj1034: [ZJOI2008]泡泡堂BNB
http://www.lydsy.com/JudgeOnline/problem.php?id=1034 从小到大排序后 最大得分: 1.自己最小的>对方最小的,赢一场 2.自己最大的>对 ...
- BZOJ1034 [ZJOI2008]泡泡堂BNB 【贪心】
1034: [ZJOI2008]泡泡堂BNB Time Limit: 10 Sec Memory Limit: 162 MB Submit: 3531 Solved: 1798 [Submit][ ...
- [BZOJ1034][ZJOI2008]泡泡堂BNB 贪心
1034: [ZJOI2008]泡泡堂BNB Time Limit: 10 Sec Memory Limit: 162 MB Submit: 3414 Solved: 1739 [Submit][ ...
- 【题解】BZOJ1034 [ZJOI2008]泡泡堂BNB(贪心)
[题解]BZOJ1034 [ZJOI2008]泡泡堂BNB(贪心) 考虑直接模拟田忌赛马... 我的最小比你的大,直接上 我的最大比你的大,直接上 otherwise,我小换你大 考虑最劣,由于每次比 ...
随机推荐
- 【转】 C语言文件操作详解
转自:http://www.cnblogs.com/likebeta/archive/2012/06/16/2551780.html C语言中没有输入输出语句,所有的输入输出功能都用 ANSI C提供 ...
- linux进程管理之优先级
进程优先级 nice ==================================================================================== Linu ...
- MyEclipse6.5的SVN插件的安装
在线安装 1. 打开Myeclipse,在菜单栏中选择Help→Software Updates→Find and Install; 2. 选择Search for new features to i ...
- 「THUWC 2017」在美妙的数学王国中畅游
这个题目很明显在暗示你要用泰勒展开. 直接套上去泰勒展开的式子,精度的话保留12项左右即可. 分别维护每一项的和,可能比较难写吧. 然后强行套一个LCT就没了.
- 牛客练习赛41 B-666RPG
题目链接:https://ac.nowcoder.com/acm/contest/373/B 题意:有n个回合,每个回合给1个数,每个回合你有两种选择 1.加上第i个数 2.将当前数乘-1 想知道有多 ...
- Python遍历文件个文件夹
在读文件的时候往往需要遍历文件夹,python的os.path包含了很多文件.文件夹操作的方法.下面列出: os.path.abspath(path) #返回绝对路径 os.path.basename ...
- Matlab-2:二分法工具箱
function g=dichotomy(f,tol) %this routine uses bisection to find a zero of user-supplied %continuous ...
- 338. Counting Bits_比特位计数_简单动态规划
https://leetcode.com/problems/counting-bits/ 这是初步了解动态规划后做的第一道题,体验还不错... 看完题目要求后,写出前10个数的二进制数,发现了以下规律 ...
- Javascript 将 HTML 页面生成 PDF 并下载
最近碰到个需求,需要把当前页面生成 pdf,并下载.弄了几天,自己整理整理,记录下来,我觉得应该会有人需要 :) html2canvas 简介 我们可以直接在浏览器端使用html2canvas,对整个 ...
- nodejs 修改端口号 process.env.PORT(window环境下)
各个环境下,nodejs设置process.env.PORT的值的命令,如下1.linux环境下: PORT= node app.js 使用上面命令每次都需要重新设置,如果想设置一次永久生效,使用下面 ...