博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Matrix (二分套二分
阅读量:4954 次
发布时间:2019-06-12

本文共 1521 字,大约阅读时间需要 5 分钟。

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 ≤ M ≤ N × 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-99993312100007-199987-99993100019200013-399969400031-99939

 

#include
#include
#include
using namespace std;int t;long long n,k;long long make(long long i,long long j){ return i*i+j*j+i*100000-j*100000+i*j;}bool erfen(long long m){ long long cnt=0; for(int j=1;j<=n;j++){ int l=1,r=n,ans=0; while(l<=r){
//内层二分 int i=l+r>>1; if(make(i,j)<=m){ ans=i; l=i+1; } else r=i-1; } cnt+=ans; } return cnt>=k;}int main(){ cin>>t; for(int w=0;w
>n>>k; long long l=-100000*n; long long r=n*n+n*n+100000*n+n*n,ans; while(l<=r){
//外层二分 long long m=l+r>>1; if(erfen(m)){ ans=m; r=m-1; }else l=m+1; } cout<
<

 

转载于:https://www.cnblogs.com/yfr2zaz/p/10480303.html

你可能感兴趣的文章
MediaWiki左侧导航栏通过特殊页面就可以设置。
查看>>
揭秘:黑客必备的Kali Linux是什么,有哪些弊端?
查看>>
linux系统的远程控制方法——学神IT教育
查看>>
springboot+mybatis报错Invalid bound statement (not found)
查看>>
Linux环境下SolrCloud集群环境搭建关键步骤
查看>>
P3565 [POI2014]HOT-Hotels
查看>>
MongoDB的简单使用
查看>>
hdfs 命令使用
查看>>
prometheus配置
查看>>
定宽320 缩放适配手机屏幕
查看>>
BZOJ 2120 数颜色 【带修改莫队】
查看>>
【noip2004】虫食算——剪枝DFS
查看>>
Codeforces 40 E. Number Table
查看>>
CLR via C#(第3 版)
查看>>
java语法之final
查看>>
关于响应式布局
查看>>
详解ASP.Net 4中的aspnet_regsql.exe
查看>>
python 多进程和多线程的区别
查看>>
hdu1398
查看>>
[android] 网络断开的监听
查看>>