Problem - B - Codeforces

在数轴上放点,使得每个点的距离都大于1,放每个点(x,y)的花费为|x| + |y|,总的花费定义为最大的点的花费

我们每次放的点一定是在一个正方形边上的,只有一个点的时候是在原点,2~4个的时候我们就会选择(0,1),(1,0),(0,-1),(-1,0)这个正方形(看成是边长相等的菱形)这个时候边长是2,能放点的数量是4,最大花费为1,可以看出我们的花费是和我们所在的是长度是多少的正方形有关,我们二分出能放在边长是多少的正方形,答案就是这个边长-1

#include <iostream>
#include <bits/stdc++.h>
#include <cstring>
#include <vector>
#include <unordered_map>
#include <queue>
#include <set>
#include <algorithm>
#define x first
#define y second
#define int long long
#define pb emplace_back
#define fu(i,a,b) for(int i=a;i<=b; ++ i)
#define fd(i,a,b) for(int i=a;i>=b;    -- i)
#define endl '\n'
#define ms(x,y) memset(x,y,sizeof x)
#define ios ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
using namespace std;typedef long long LL;
typedef unsigned long long ULL;
typedef vector<vector<LL>> VVL;
typedef vector<vector<int>> VVI;
typedef vector<LL> VL;
typedef vector<int> VI;
typedef vector<string> VS;
typedef pair<int,int> PII;
typedef vector<PII> VPII;
typedef pair<PII,int> PIII;
typedef pair<double,double> PDD;
typedef pair<double,int> PDI;
typedef pair<char,int> PCI;
typedef pair<string,int> PSI;
typedef pair<int,string> PIS;
typedef pair<int,char> PIC;
typedef pair<LL,LL> PLL;
typedef __int128 i128;
typedef unsigned long long ULL;
const int N =2e5 + 10,M = N * 2,base =400  ,INF = 0x3f3f3f3f,P = 131;
const double eps = 1e-8;
const int mod = 998244353;
const LL LNF=(LL) INF * INF;LL n;inline void solve()
{cin >> n ;LL l=1,r= 1e18;while(l < r ){LL mid = l + r >> 1;if((i128) mid * mid >= n) r=mid;else l = mid +1;}cout << l-1 <<endl;}
signed main()
{
//  freopen("1.txt","r",stdin);
//  #define int long long ios
//  cout << fixed<<setprecision(2);int t=1;cin>>t;int now = 1;while(t -- ){
//      cout<<"Case ";
//      cout<<"Case #";
//      cout<<"Scenario #";
//      cout<< now ++ <<": ";
//      cout<< now ++ <<": \n";solve();}return 0;
}

B. Points on Plane(二分)相关推荐

  1. 【CodeForces】576 C. Points on Plane

    [题目]C. Points on Plane [题意]给定坐标系中n个点的坐标(范围[0,10^6]),求一种 [ 连边形成链后总长度<=2.5*10^9 ] 的方案.n<=10^6. [ ...

  2. Gym - 100889H Hitting Points 计算几何+三分+二分

    题目链接 Hitting Points 题意 按逆时针顺序给你二维平面上严格凸包的n个点,编号0到n-1, 有q次询问, 每次询问确定一个编号为idx的基础点, 以idx和(idx+1)%n构成的向量 ...

  3. Match Points CodeForces 1156C 二分答案

    CodeForces 1156C Match Points 传送门:https://codeforces.com/problemset/problem/1156/C You are given a s ...

  4. LightOJ 1088 - Points in Segments 二分

    http://www.lightoj.com/volume_showproblem.php?problem=1088 题意:给出N个点,Q个查询,问在区间内的点数有多少个. 思路:直接在线二分,注意边 ...

  5. 三维空间点进行空间平面拟合原理及MATLAB和C++代码实现

    平面拟合原理参考网页:https://blog.csdn.net/duiwangxiaomi/article/details/89246715 MATLAB实现参考网页:https://blog.cs ...

  6. 在OpenCV中使用单应性进行姿势估计

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 什么是单应性 单应性是一种平面关系,可将点从一个平面转换为另一个平 ...

  7. 基于OpenCV的位姿估计

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 今天我们的目标是找出我们相对于球场上的位置,从而了解我们在比赛中的 ...

  8. opencv线结构光三维重建

    下面是从CSDN下载的一个程序,用到了其他的一些库,大致实现了HALCON示例中的线结构光三维重建的功能,下面是完整代码,具体解释见注释 #include <opencv2/highgui/hi ...

  9. ROS中使用Eigen库[不定期更新]

    前期说明 ROS中的数据操作需要线性代数,Eigen库是C++中的线性代数计算库. Eigen库独立于ROS,但是在ROS中可以使用. Eigen库可以参见http://eigen.tuxfamily ...

最新文章

  1. 高速串行总线设计基础(三)SERDES的通用结构介绍
  2. EOS开发工具Visual-studio-code和CLion设置
  3. 皮一皮:好的产品营销该怎么学习?看这...
  4. 笔记-项目质量管理-七种基本质量工具
  5. git 拉取和获取 pull 和 fetch 区别
  6. zzuli 2525: 咕咕的搜索序列
  7. makefile之通配符(4)
  8. JavaScript 解析 JSON 数据
  9. Nginx服务器的开发团队
  10. jQuery函数$(window).load事件
  11. mysql56数据库的创建_如何在Mysql下用命令创建数据库用户方法
  12. 在MacOS下为2K显示器开启HiDPI
  13. java更改图片小于32kb_echarts上传图表图片到Java 后台保存出来是空白图片?
  14. 航空航天行业工作站应用---EDA仿真计算工作站
  15. jsp医疗报销管理系统 myeclipse开发技术 mysql数据库
  16. 一阶微分方程的物理意义_微分方程和积分方程有哪些典型的物理意义?实际中哪个更常用?...
  17. SpringBoot集成flyway、mybatis-plus(超详细)
  18. ファイルダウンロード
  19. for update
  20. ps 仿章工具的使用

热门文章

  1. chrome android 2.3,【安卓2.3谷歌框架单刷包】安卓2.3谷歌GMS服务框架
  2. 都1202年了,阿里五岳版的《Java开发手册》你还没拜读过?
  3. java内部错误2203_Win7系统安装Java出现内部错误2203怎么办
  4. 关于setCapture和releaseCapture的理解和整理
  5. 高等教育心理学:学生情感与意志的发展
  6. 关于2020考研信息收集
  7. 如何在最短时间内入门Python爬虫?
  8. 【个人博客设计】开发工具篇
  9. ArrayAdapter使用示例
  10. 移动端JQ插件hammer使用详解