F - 二分二分

Crawling in process... Crawling failed Time Limit:6000MS     Memory Limit:65536KB     64bit IO Format:%lld & %llu

Submit Status

Description

Given a N × N matrix A, whose element in the i-th row and j-th column Aij is an number that equals i2 + 100000 × i + j2 - 100000 × j + i × j, you are to find the M-th smallest element in the matrix.

Input

The first line of input is the number of test case.
For each test case there is only one line contains two integers, N(1 ≤ N ≤ 50,000) and M(1 ≤ MN × N). There is a blank line before each test case.

Output

For each test case output the answer on a single line.

Sample Input

121 12 12 22 32 43 13 23 83 95 15 255 10

Sample Output

3
-99993
3
12
100007
-199987
-99993
100019
200013
-399969
400031
-99939
题目大意:给你一个n*n矩阵,每一个位置都有一个值,这个值由该点的该点的行列标决定,问你第m小的元素是多少。思路分析:比赛时都贴上二分标签了,最后还没敲出来,首次我们要二分答案,然后check,check函数里面按列进行枚举,因为在j确定的情况下函数关于i递增,然后直接二分查找刚好小于等于mid的元素在每一列的位置,累加return,判断返回的数与m的关系,继续二分代码:
#include <iostream>
#include <algorithm>
#include <cstdio>
#include <cstring>
#include <cmath>
using namespace std;
const int inf=1e9;
typedef long long ll;
const int  C=100000;
ll f(ll x,ll y)
{return (x*x+C*x+y*y-C*y+x*y);
}
ll n,m;
ll checknum(ll num)
{ll cnt=0;for(int i=1;i<=n;i++)//枚举列,因为在列数确定的情况下表达式关于i是递增的
     {ll sl=1,sr=n;int ant=0;while(sl<=sr){ll smid=(sl+sr)>>1;if(f(smid,i)<=num){ant=smid;sl=smid+1;}else sr=smid-1;}cnt+=ant;}return cnt;
}
int main()
{int T;scanf("%d",&T);while(T--){scanf("%lld%lld",&n,&m);ll l=-100000*n,r=n*n+100000*n+n*n+n*n;ll ans;while(l<=r){ll mid=(l+r)>>1;//cout<<mid<<endl;if(checknum(mid)>=m){ans=mid;//cout<<ans<<endl;r=mid-1;}else l=mid+1;// cout<<ans<<endl;
       }printf("%lld\n",ans);}
}

转载于:https://www.cnblogs.com/xuejianye/p/5691120.html

poj3685 二分套二分相关推荐

  1. qduoj - WHY吃糖果(二分套二分)

    题目链接:点击查看 题目大意:给出一个n*n的矩阵,每个格子的权值为i*i+j*j+i*j+100000*(i-j),求该矩阵中第m小的权值为多少 题目分析:这个题在选拔的时候给我整自闭了,看到n有5 ...

  2. 主席树 + 后缀数组求LCP + 二分套二分 ---- P4094 [HEOI2016/TJOI2016]字符串

    题目链接 题目大意: 解题思路: 设我们的答案为midmidmid(注意这里有坑是[a,b][a,b][a,b]的所有子串和[c,d][c,d][c,d]这个子串的最长lcplcplcp),那么我们会 ...

  3. 牛客 - 乘法(二分套二分)

    题目链接:点击查看 题目大意:给出一个n*m的矩阵,每个位置的元素为 maze [ i ] [ j ] = a [ i ] * b [ j ],现在给出数组 a 和数组 b ,求出矩阵中第k大的数 题 ...

  4. 【NOI2012】骑行川藏【拉格朗日乘数法】【二分套二分】

    传送门 拉格朗日乘数法裸题 限制 f({v})=∑i=1nkisi(vi−vi′)=EUf(\{v\})=\sum_{i=1}^nk_is_i(v_i-v_i')=E_Uf({v})=i=1∑n​ki ...

  5. 二分查找 二分答案 万字详解,超多例题,带你学透二分。

    很多人对二分感到很苦恼,很困惑,可能是因为二分的边界很难掌握,也许是判断条件难写- 然而,很幸运,你找到了这篇文章,仔细看下去,这篇文章将带你学透二分!!! 二分可以简单分为二分查找与二分答案. 可能 ...

  6. LibreOJ #2006. 「SCOI2015」小凸玩矩阵 二分答案+二分匹配

    #2006. 「SCOI2015」小凸玩矩阵 内存限制:256 MiB时间限制:1000 ms标准输入输出 题目类型:传统评测方式:文本比较 上传者: 匿名 提交提交记录统计讨论测试数据 题目描述 小 ...

  7. [CTSC2018]混合果汁 二分 套 主席树上二分

    题意: n种果汁,第iii种果汁的美味程度是did_idi​有lil_ili​​升,价格是pip_ipi​升 mmm个询问,要求使用果汁的总量不小于LimLimLim,价格不超过GGG,最大化所用的果 ...

  8. 外卖(food) 洛谷4040宅男计划 三分套二分贪心

    food评测传送门 [题目描述] 叫外卖是一个技术活,宅男宅女们一直面对着一个很大的矛盾,如何以有限的金钱在宿舍宅得尽量久.     外卖店一共有 N 种食物,每种食物有固定的价钱 Pi 与保质期 S ...

  9. P2839 [国家集训队]middle(二分 套 主席树)

    P2839 [国家集训队]middle 有一个长度为nnn的序列,有mmm次询问,每次询问a,b,c,da, b, c, da,b,c,d,为l∈[a,b],r∈[c,d]l \in [a, b], ...

最新文章

  1. c语言中的if语句_If ... C中的其他语句解释
  2. [转]关于WM_NCHITTEST消息
  3. 现在的编程语言越来越多,为什么 C 和 C++ 还没有被现在的时代淘汰呢?
  4. Editor:实用的在线编辑器(WYSIWYG Editor)
  5. python replace替换多个字符_关于python:使用string.replace(x,y)替换所有
  6. 创建war类型的maven工程时报web.xml is missing and failOnMissingWebXml is set to true
  7. Recoil 是 React 的状态管理库
  8. 薄板冲压成型过程的计算机仿真与应用,薄板冲压成型过程的计算机仿真与应用_钟志华.pdf...
  9. VB.net中的sender和e
  10. 奇怪的等待事件“enq: ss - contention”
  11. 安全教育平台账号后四位_安全教育平台账号登录入口https://www.xueanquan.com/
  12. logstash nginx error access 日志处理
  13. Linux下登陆mysql服务器不需要输入账号密码信息
  14. MIDIPLUS STUDIO M S 2 4声卡安装调试教程
  15. 连点4次android版本,连点器极速版下载-连点器快速版v4.0.8 安卓版 - 极光下载站...
  16. GEE(python)雨天Gini指数
  17. Hadoop官网查看手册
  18. 【物联网平台篇9】使用MQTT上传图片到OneNET
  19. ChatGPT 爆火!谷歌、微软、百度纷纷下场?
  20. IDEA创建web工程+tomcat配置

热门文章

  1. Spring中的InitializingBean接口的使用
  2. Mac下安装jdk8
  3. oracle 次月,Oracle日期查询:季度、月份、星期等时间信息
  4. 电脑技巧:键盘上ESC按键的使用小技巧,你都知道吗?
  5. C#easyui combotree 设置节点折叠
  6. robomaster裁判系统服务器,2018裁判系统调试组网完全攻略
  7. 取本地数据_深入理解Kafka服务端之Follower副本如何同步Leader副本的数据
  8. 嵌入式C语言基础(二)
  9. 祝大家七夕快乐,邀你源码共读,顺带发点红包
  10. nginx和apache限制IP地址访问的设置方法