题目链接:

https://cn.vjudge.net/problem/ZOJ-3278

题目大意:

给出两个数列A和B,长度分别为N,M (1<=N, M<=10^5, 1<=Ai, Bi<=10^5),求Cij = Ai * Bj中第K大的数

解题思路:

二分第k大,然后枚举a[i],二分b[i]来判断是不是第k大

注意long long

 #include<bits/stdc++.h>
using namespace std;
const int maxn = 1e5 + ;
typedef long long ll;
ll a[maxn], b[maxn];
ll n, m, k;
ll judge(ll x)
{
ll tot = ;
for(int i = ; i <= n; i++)
{
ll tmp = x / a[i];
int t = upper_bound(b + , b + + m, tmp) - b;
if(t > m || b[t] > tmp)t--;
//t > m 说明tmp大于b的最大值,此时t为m+1,需要减一表示小于等于tmp的数目
tot += t;//此时的t表示小于等于tmp的数目
}
return tot;
}
int main()
{
while(scanf("%lld%lld%lld", &n, &m, &k) != EOF)
{
k = n * m + - k;
for(int i = ; i <= n; i++)
scanf("%lld", &a[i]);
for(int i = ; i <= m; i++)
scanf("%lld", &b[i]);
sort(b + , b + + m);
ll l = , r = 1e10, ans;
while(l <= r)
{
ll m = (l + r) / ;
if(judge(m) >= k)ans = m, r = m - ;
else l = m + ;
}
cout<<ans<<endl;
}
return ;
}

ZOJ-3278 8G Island---二分第k大的更多相关文章

  1. zoj 2112 Dynamic Rankings 动态第k大 线段树套Treap

    Dynamic Rankings Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.zju.edu.cn/onlinejudge/show ...

  2. zoj 2112 动态区间求第k大

    题目大意: 动态单点更新,然后多次询问求区间内第k大 这里单个的主席树不能实现,这里采取的是树状数组套主席树 首先可以想的是将静态主席树先构建好,不去动它,这里空间复杂度就是O(nlogn),这个只要 ...

  3. 计蒜客 38229.Distance on the tree-1.树链剖分(边权)+可持久化线段树(区间小于等于k的数的个数)+离散化+离线处理 or 2.树上第k大(主席树)+二分+离散化+在线查询 (The Preliminary Contest for ICPC China Nanchang National Invitational 南昌邀请赛网络赛)

    Distance on the tree DSM(Data Structure Master) once learned about tree when he was preparing for NO ...

  4. 【题解】51nod 1686第K大区间

    成功的秘诀,在于克服自己看题解的冲动……[笑哭].自己A掉这题还是灰常开心的~ 以及爱死 two - pointer ! two - pointer 大法是真的好哇……这个题目有上一题的经验:求第\( ...

  5. 【题解】51nod 1685第K大区间2

    二分答案+++++++(。・ω・。) 感觉这个思路好像挺常用的:求第\(K\) 大 --> 二分第 \(K\) 大的值 --> 检验当前二分的值排名是第几.前提:排名与数值大小成单调性变化 ...

  6. ZOJ 1112 Dynamic Rankings【动态区间第K大,整体二分】

    题目链接: http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=1112 题意: 求动态区间第K大. 分析: 把修改操作看成删除与增加 ...

  7. ZOJ 2112 Dynamic Rankings(动态区间第 k 大+块状链表)

    题目大意 给定一个数列,编号从 1 到 n,现在有 m 个操作,操作分两类: 1. 修改数列中某个位置的数的值为 val 2. 询问 [L, R] 这个区间中第 k 大的是多少 n<=50,00 ...

  8. 51 NOD 1685 第K大区间2 二分+BIT

    题目描述: 定义一个长度为奇数的区间的值为其所包含的的元素的中位数. 现给出n个数,求将所有长度为奇数的区间的值排序后,第K大的值为多少. 样例解释: [l,r]表示区间的值 [1]:3 [2]:1 ...

  9. 51nod-1686 第K大区间(二分+尺取法)

    题目链接: 第K大区间 基准时间限制:1 秒 空间限制:131072 KB    定义一个区间的值为其众数出现的次数.现给出n个数,求将所有区间的值排序后,第K大的值为多少. Input 第一行两个数 ...

随机推荐

  1. 三、hive JavaAPI示例

    在上文中https://www.cnblogs.com/lay2017/p/9973370.html 我们通过hive shell去操作hive,本文我们以Java代码的示例去对hive执行加载数据和 ...

  2. Vim 技巧

    :r 文件名 导入另一文件到当前文件中 :! 命令 可以不退出当前编辑的文本而能执行系统的命令 自定义快捷键 注意这里的^P这个是ctrl + V + P :map ^P I//<ESC> ...

  3. unity3d之游戏优化

    =============================================================================== 美术规格: 1.单个蒙皮网格渲染器2.一 ...

  4. 使用admin lte 碰到访问Google字体的问题

    下载了admin lte 的模板,运行的时候,发现很慢,看了一下console,发现adminlte.css里有import google的字体文件,众所周知的原因,无法访问,所以网页很慢,没办法,只 ...

  5. Dubbo(二) 一次惨痛的流血事故

    时间定位到2018年11月某某一天,我正在看看Spring源码的文档,趁着没啥事,忽然想起Dubbo是基于Schema扩展的,所以就翻了下Dubbo的源码. 然后的然后,有活要干了,写完代码后,启动工 ...

  6. JavaScript高级编程———数据存储(cookie、WebStorage)

    JavaScript高级编程———数据存储(cookie.WebStorage) <script> /*Cookie 读写删 CookieUtil.get()方法根据cookie的名称获取 ...

  7. javascript判断浏览器支持CSS3属性

    function getsupportedprop(proparray){ var root=document.documentElement; //reference root element of ...

  8. String对象的match方法

    RegExp对象的exec方法和String对象的match方法用法十分相似,分两篇博客讲讲其各自的用法和它们之间的异同.上一篇将exec方法的用法,这篇讲解match方法,并比较其异同. 定义与语法 ...

  9. background-position为什么会出现负值?

    上篇文章讲到了雪碧图,其中小机器人抖腿的动作设置了图片的background-position:-640px 循环到-1200px,那么这个数值是如何得出来的?下面具体分析一下如何计算backgrou ...

  10. bootstrap学习笔记细化(表格)

    主要属性: 全屏宽度带水平线的表格 .table 带边框的表格 .table-bordered 条纹状表格 .table-striped 悬停变色表格 .table-hover 紧凑风格表格 .tab ...