poj3685 二分套二分

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/286947.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

租号显示服务器爆满怎么办,租号器环境异常怎么解决

玩网络游戏出现环境异常&#xff0c;怎么办…网络连接上但上不了网的原因以及相应的解决办法。一、检查是否密码错误输入连接密码的时候&#xff0c;如果密码比较长有可能会输错密码&#xff0c;所以建议大家再输入一次密码。如果有可能&#xff0c;直接使用复制粘贴的方式输入…

零基础“复刻”经典飞机大战小程序游戏【一篇文使用 IVX 轻松实战5】

作者简介 作者名&#xff1a;1_bit 简介&#xff1a;CSDN博客专家&#xff0c;2020年博客之星TOP5&#xff0c;蓝桥签约作者。15-16年曾在网上直播&#xff0c;带领一批程序小白走上程序员之路。欢迎各位小白加我咨询我相关信息&#xff0c;迷茫的你会找到答案。 必看提示 项…

【无人机组装与调试】第一章 概述

【无人机组装与调试】系列课程全集&#xff1a; 第一章 概述 第二章 关于新西达30A电调说明书的问题 第三章 舵机安装与调整 第四章 F450四轴装机实例-选择机型、需要的器材工具材料 第五章 无人机遥控器 第六章 电调、电池、电机 1.1 什么是无人机&#xff1f; 无人驾驶飞机是…

Flutter之Center

1、Center介绍 Center将子控件放在其内部中心&#xff0c;里面只能放一个child&#xff0c;但是child里面可以放Container Center继承勒Align&#xff0c;然后Align默认是center. 2、测试代码 测试1、 overrideWidget build(BuildContext context) {return MaterialApp(title…

【Cisco Packet Tracer】综合实践题-校园网仿真

本题的目的&#xff1a; 理论与实践结合&#xff1a;Cisco Packet Tracer是一个网络模拟软件&#xff0c;通过模拟真实的网络环境&#xff0c;可以让学生在实际操作中加深对理论知识的理解和掌握。问题解决能力&#xff1a;综合实验题可以考察学生分析和解决问题的能力。在实验…

C# =符号的使用

前言&#xff1a;-. 读作 goes to&#xff0c;是C#3.0的新内容&#xff1b;-. 字段定义时设置{ get; set; }属性的作用&#xff1a;主要是为了外部访问的安全性封装字段&#xff0c;get set你自己可以设置限制条件&#xff0c;尤其是wpf绑定时&#xff0c;没有get set属性&…

【无人机组装与调试】第二章 关于新西达30A电调说明书的问题

【无人机组装与调试】系列课程全集: 第一章 概述 第二章 关于新西达30A电调说明书的问题 第三章 舵机安装与调整 第四章 F450四轴装机实例-选择机型、需要的器材工具材料 第五章 无人机遥控器 第六章 电调、电池、电机 极限使用:   持续电流30A,瞬间35A ,40A持续10秒。 外…

所有方向你要的资料干货这都有,从入门到实战!【CSDN宝藏资料图鉴第一期】

前言 CSDN 是全球知名的开发者社区&#xff0c;创建于1999年&#xff0c;经过20来年的知识文档积累已然成为中文开发者的知识宝库&#xff1b;从基础的法入门到蜕变实战案例、从神秘前沿技术到清晰的实践步骤&#xff0c;可以说CSDN是你找寻资料的最佳宝库&#xff0c;只要你想…

Spark官方调优文档翻译(转载)

Spark调优 由于大部分Spark计算都是在内存中完成的&#xff0c;所以Spark程序的瓶颈可能由集群中任意一种资源导致&#xff0c;如&#xff1a;CPU、网络带宽、或者内存等。最常见的情况是&#xff0c;数据能装进内存&#xff0c;而瓶颈是网络带宽&#xff1b;当然&#xff0c;有…

《DOS命令全集(中英文对照)》CHM版.CHM

http://pan.baidu.com/s/1pLrhAzx转载于:https://www.cnblogs.com/micro-chen/p/5692802.html

判断一个字符串是否为另外一个字符串旋转之后的字符串。

★判断一个字符串是否为另外一个字符串旋转之后的字符串。例如&#xff1a;给定s1 &#xff1d; AABCD和s2 BCDAA&#xff0c;返回1&#xff0c;给定s1abcd和s2ACBD&#xff0c;返回0.AABCD左旋一个字符得到ABCDA AABCD右旋一个字符得到DAABC AABCD左旋两…

Flutter之Padding

1 、Padding介绍 Padding用来为子元素添加填充&#xff0c;也就是指定子元素与容器边界的距离&#xff0c;作用基本上与Android中ViewGroup的padding属性差不多 const Padding({Key key,required this.padding,Widget child,}) : assert(padding ! null),super(key: key, chil…

【无人机组装与调试】第三章 舵机安装与调整

【无人机组装与调试】系列课程全集: 第一章 概述 第二章 关于新西达30A电调说明书的问题 第三章 舵机安装与调整 第四章 F450四轴装机实例-选择机型、需要的器材工具材料 第五章 无人机遥控器 第六章 电调、电池、电机 舵机就是一种有输出轴的小传动装置。这个输出轴能够通过向…

其实python面向对象3分钟就可以入门(14)

本系列文章将会以通俗易懂的对话方式进行教学&#xff0c;对话中将涵盖了新手在学习中的一般问题。此系列将会持续更新&#xff0c;包括别的语言以及实战都将使用对话的方式进行教学&#xff0c;基础编程语言教学适用于零基础小白&#xff0c;之后实战课程也将会逐步更新。 若…

定制ASP.NET 6.0的应用配置

大家好&#xff0c;我是张飞洪&#xff0c;感谢您的阅读&#xff0c;我会不定期和你分享学习心得&#xff0c;希望我的文章能成为你成长路上的垫脚石&#xff0c;让我们一起精进。本文的主题是应用程序配置。要介绍的是如何使用配置、如何自定义配置&#xff0c;以采用不同的方…

mysql optimization

EXPLAIN 命令详解 http://www.cnblogs.com/gomysql/p/3720123.html http://www.cnblogs.com/Aiapple/p/5697229.html http://www.cnblogs.com/xuanzhi201111/p/4175635.html https://dev.mysql.com/doc/refman/5.7/en/optimization.html Mysql 执行计划&#xff08;Explain&…

云服务器cpu性能,云服务器cpu性能

云服务器cpu性能 内容精选换一换CPU积分是一种用来衡量云服务器计算、存储以及网络配置利用率的方式。云服务器利用CPU积分机制保证云服务器基准性能&#xff0c;解决超分云服务器长期占用CPU资源的问题。使用CPU积分机制的弹性云服务器适用于平时CPU负载不高、但突发时可接受因…

Flutter之Decoration

1、不废话&#xff0c;先爆照看效果 2、Decoration介绍 Flutter的Decoration可以设置&#xff1a;背景色 背景图 边框 圆角 阴影 渐变色 的等属性&#xff0c;有点像android里面的shape&#xff0c;Decoration 是基类&#xff0c;它的子类有下面这些 BoxDecoration:实现边框、…

DRBD 部署

主备模式DRBD1&#xff1a;eth0&#xff1a;10.0.0.3eth1:172.16.1.3 用于心跳线和数据同步&#xff08;在工作中&#xff0c;一般把心跳线分开&#xff09;DRBD2&#xff1a;eth0&#xff1a;10.0.0.4eth1:172.16.1.4 用于心跳线和数据同步&#xff08;在工作中&#xff0c;一…

.net 服务器端自定义分页控件 简单示例

使用效果如图&#xff1a; 先将控件添加到工具箱 将控件拖入到页面 会自动生成如下代码 <pager:pager ID"Pager1" runat"server" Pagesize"2" OnPageIndexChange"Pager1_PageIndexChange1"> </pager:pager> 后台代码自己…