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.pswp.cn/news/286947.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/286947.shtml
英文地址,請注明出處:http://en.pswp.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> 后臺代碼自己…