BZOJ1034
来源:互联网 发布:c 从入门到精通 源码 编辑:程序博客网 时间:2024/05/21 14:44
沿传孙子的策略 , 用自己最差的马打对方最好的马。
提示:
1. 先前的一道田忌赛马有些类似 , 但是这个题时间不允许我们用
2. 研究了一下策略满足单峰性 , 果断三分。
#include <iostream>#include <cstring>#include <cstdio>#include <cstdlib>#include <stack>#include <list>#include <queue>#include <set>#include <map>#include <algorithm>#include <string>using namespace std;const int maxn = 1e5+1e2;inline int re() { int n; scanf("%d",&n); return n; }int n;int a[maxn] , b[maxn];int give(int *x , int *y , int l){ int res = 0; for(int i=n-l;i<n;i++) if(x[i]<y[i-n+l]) return 0; else res+= (x[i]==y[i-n+l]?1:2); return res;}int solve(int *x , int *y){ int l = 0 , r = n+1; while(l+4<r) { int len = r-l+1; int ml = l+len/3-1; int mr = r-len/3+1; if(give(x , y , ml) < give(x , y , mr)) l = ml; else r = mr; } int res = -1; for(int i=l;i<=r;i++) res = max(res , give(x , y , i)); return res;}int main(){ #ifndef ONLINE_JUDGE freopen("bnb10.in","r",stdin); #endif n = re(); for(int i=0;i<n;i++) a[i] = re(); for(int i=0;i<n;i++) b[i] = re(); sort(a , a+n); sort(b , b+n); printf("%d %d\n",solve(a , b) , n*2-solve(b , a)); //cout<<solve(a , b)<<" "<<solve(b , a)<<endl; return 0;}
数据:
TestInput 1:1034320200023021210020TestOutput 1:15 9
0 0
- BZOJ1034
- BZOJ1034
- bzoj1034
- bzoj1034
- [BZOJ1034]ZJOI2008 泡泡堂|贪心
- BZOJ1034: [ZJOI2008]泡泡堂BNB
- 【bzoj1034】【zjoi2008】【泡泡堂】【贪心】
- BZOJ1034泡泡堂BNB
- 【ZJOI2008】【BZOJ1034】泡泡堂BNB
- 【贪心】[BZOJ1034]泡泡堂BNB
- [BZOJ1034][ZJOI2008]泡泡堂BNB
- 【bzoj1034】[ZJOI2008]泡泡堂BNB
- 【bzoj1034】[ZJOI2008]泡泡堂BNB
- Bzoj1034 [ZJOI2008]泡泡堂BNB
- BZOJ1034[ZJOI2008]泡泡堂BNB
- bzoj1034 [ZJOI2008]泡泡堂BNB
- bzoj1034: [ZJOI2008]泡泡堂BNB
- bzoj1034: [ZJOI2008]泡泡堂BNB
- Ubuntu 下用户和组添加与删除操作
- 海量数据处理算法—Bloom Filter
- JavaWeb_01_Dom4j操作节点元素和属性的增删改查
- org.gradle.api.internal.project.ProjectInternal.getPluginManager()Lorg/gradle/api/internal/plugins/P
- 如何成为一名优秀的高级C++程序员?
- BZOJ1034
- Linux命令之tar
- 网络(一)网络编程简介
- 数据结构之栈(简单版)
- 海量数据处理 算法总结
- ES6--Promise
- LeetCode_Ugly Number_ 丑陋的数字
- 实现单例模式时synchronized的必要性
- Mime 类型列表