poj3685 Matrix
思路:
二分套二分。
矩阵在每一列上是严格递增的,可以利用这一点进行二分。
实现:
#include <cstdio>
#include <cmath>
#include <algorithm>
using namespace std;
typedef long long ll;
const ll INF = 0x3f3f3f3f3f3f3f3f;
ll n, m;
ll cal(ll i, ll j)
{
return i * i + i * + j * j - j * + i * j;
}
bool check(ll x)
{
ll sum = ;
for (int i = ; i <= n; i++)
{
int l = , r = n, ans = ;
while (l <= r)
{
int m = l + r >> ;
ll tmp = cal(m, i);
if (tmp <= x) { ans = m; l = m + ; }
else r = m - ;
}
sum += ans;
}
return sum >= m;
}
int main()
{
int T;
scanf("%d", &T);
while (T--)
{
scanf("%lld %lld", &n, &m);
ll l = INF, r = -INF, ans = -INF;
for (int i = ; i <= n; i++)
{
l = min(l, cal(, i));
r = max(r, cal(n, i));
}
while (l <= r)
{
ll m = l + r >> ;
if (check(m)) { ans = m; r = m - ; }
else l = m + ;
}
printf("%lld\n", ans);
}
return ;
}
poj3685 Matrix的更多相关文章
- POJ3685 Matrix —— 二分
题目链接:http://poj.org/problem?id=3685 Matrix Time Limit: 6000MS Memory Limit: 65536K Total Submissio ...
- POJ3685 Matrix(嵌套二分)
同行元素递减,同列元素递增,采用嵌套二分的方法 #include<cstdio> #include<iostream> #include<cstdlib> #inc ...
- Day3-P - Matrix POJ3685
Given a N × N matrix A, whose element in the i-th row and j-th column Aij is an number that equals i ...
- Matrix [POJ3685] [二分套二分]
Description 有一个N阶方阵 第i行,j列的值Aij =i2 + 100000 × i + j2 - 100000 × j + i × j,需要找出这个方阵的第M小值. Input 第一行输 ...
- 【POJ - 3685】Matrix(二分)
Matrix Descriptions 有一个N阶方阵 第i行,j列的值Aij =i2 + 100000 × i + j2 - 100000 × j + i × j,需要找出这个方阵的第M小值. In ...
- angular2系列教程(十一)路由嵌套、路由生命周期、matrix URL notation
今天我们要讲的是ng2的路由的第二部分,包括路由嵌套.路由生命周期等知识点. 例子 例子仍然是上节课的例子:
- Pramp mock interview (4th practice): Matrix Spiral Print
March 16, 2016 Problem statement:Given a 2D array (matrix) named M, print all items of M in a spiral ...
- Atitit Data Matrix dm码的原理与特点
Atitit Data Matrix dm码的原理与特点 Datamatrix原名Datacode,由美国国际资料公司(International Data Matrix, 简称ID Matrix)于 ...
- Android笔记——Matrix
转自:http://www.cnblogs.com/qiengo/archive/2012/06/30/2570874.html#translate Matrix的数学原理 在Android中,如果你 ...
随机推荐
- java里int类型转byte类型
今天在做书上的一个例子的时候, 要使用byte类型,首先我很直接的就写到了byte b = 0XAA, 结果报错, 说从int转换到byte可能会有损失. 我当时就很奇怪, 为什么会出现这种情况呢? ...
- Java经常使用日期操作具体解释
Date类型大多数时间分量计算方法已经被Calendar代替 Date经常用法setTime getTime() new Date();默认获取当前的时间 SimpleDateFormat用来格式化和 ...
- hdu2099 整除的位数(暴力)
Problem Description http://acm.hdu.edu.cn/showproblem.php?pid=2099 一个整数,仅仅知道前几位.不知道末二位,被还有一个整数除尽了,那么 ...
- 2016/04/18 session cookie 对比 应用 <?php session_start() / setcookie()?>
①会话 huihua.php <!DOCTYPE html> <html lang="en"> <head> <meta charset= ...
- Linux __setup解析【转】
本文转载自:http://blog.csdn.net/fdaopeng/article/details/7895037 __setup这条宏在Linux Kernel中使用最多的地方就是定义处理Ker ...
- Apache POI组件操作Excel,制作报表(四)
Apache POI组件操作Excel,制作报表(四) 博客分类: 探索实践 ExcelApacheSpringMVCServlet 上一篇我们介绍了如何制作复杂报表的分析和设计,本篇结合S ...
- DOM方式解析xml实例2
老样子,javabean实体类: import java.io.*; public class Book implements Serializable { private int id; priva ...
- 分拆数&&HDU4651
1,有两种DP,复杂度都是O(N^2),但是浪费的侧重点不同,所以根据侧重点分块DP,复杂度可以降到O(N^1.5). 2,母函数+五边形blabla... 占位. 其实就是母函数拆开后,快速知道哪些 ...
- ubuntu搭建开发环境踩坑实录
谨以此文,记录和ubuntu系统不死不休的搏斗过程,后续待补. 1.双系统安装,windows采用uefi模式安装(优启通可制作uefi的win10安装盘),ubuntu不要划分boot区,而应该划分 ...
- React VSCode插件
可以安装2个插件,一个是 Atuo Rename Tag 一个 Auto Close Tag 这样就好都了