二分强化——浮点数序列查询

TimeLimit:4000MS  MemoryLimit:128MB
64-bit integer IO format:%I64d
Problem Description

已知在二维空间中有n个点,p0,p1……pn-1

已按照x为第一优先级,y为第二优先级从大到小排好序;

即若 pi<pj

则pi.x<pj.x,或者pi.x==pj.x&&pi.y<pj.y

Input

只有一组数据
第一行是两个整数n,m分别代表点的个数和查询次数
接下来n行,每行有二个带三位小数的浮点数x,y代表一个点的坐标
再接下来m行,每行的有4个数字x1,y1,x2,y2代表p1,p2且p1>=p2

其中n,m<=100000;

任意0<=x,y<10^6;

Output

输出n个点所有小于等于p1且大于等于p2的点的下标之和

SampleInput
6 4
125.689 125.689
125.689 125.688
125.688 125.689
125.688 125.689
125.688 125.688
125.688 125.688
125.688 125.688 125.688 125.688
125.688 125.689 125.688 125.688
125.689 125.689 125.688 125.689
125.688 125.689 125.688 125.689

SampleOutput
9
14
6
5  首先第一思路一个一个比较,当由于数据庞大且有从大到小排列的小提示,显然是二分。之后就是构建数组写二分函数。  构建数组有个小技巧,把第一优先级乘一个较大的数,次优先级乘较小数获得的一个数字。恰好符合题目的比较条件。之后利用二分上下界函数找数字之间个数就完成了。接下来是这题的小细节,浮点数精度缺失的问题。

浮点数运算都会有精度缺失,转换整型也会有缺失。只是缺失比较小。当数据大的时候误差就出现了。

这题将两个浮点数整合为整数就可能遇到这个问题。

注意运算先后可能发生的精度缺失,然后用0.1补精度这一小技巧成功AC。(乘1000后,最小分度为1)。

另外1e9是浮点数,也会有进度缺失,最好改1000000000.这题被我水过去

最后附上这题我的二分函数,及调用。最后记得连续下标和是一个等差数列

long long f(ll *arr,int len,double x)
{long long r=-1,l=len,mid;while(r+1<l){mid=(r+l)/2;if(arr[mid]>x){r=mid;}else{l=mid;}}return l;
}

View Code

    i=f(arr,n,p1);j=f(arr,n,p2-1);sum=(i+j-1)*(j-i)/2;

View Code

转载于:https://www.cnblogs.com/Q1143316492/p/6293044.html

FJUT寒假第一周作业浮点数查寻题解相关推荐

  1. 寒假-第一周-几何-(点线关系的问题)

    寒假第一周:几何 POJ 2318 TOYS POJ 2398 Toy Storage(叉积判断左右+二分) POJ 3304 Segments(思维) POJ 1269 Intersecting L ...

  2. Boolan第一周笔记(二)对于第一周作业的一点总结

    本文主要总结下面的问题: 1.为什么这周的作业里面,创建数组的时候使用堆内存更好: 2.指针指向不同类型走的步数不同. 第一周作业内容如下,题目来自Boolan: 为Date类实现如下成员: 1. 构 ...

  3. 输出结果为16的python表达式_第一周作业(rayco)

    rayco 第一周作业 第一次-课后习题 a = 10 b = 3 c = a/b-a print(c, type(c)) c = a/b*a print(c, type(c)) c = 0.1*a/ ...

  4. RT-thread 柿饼UI demo(文本浏览+电子相册) ---- 暨柿饼入门课第一周作业附加题

    一.题目要求 完成下图的应用制作,范进中举复制群文件内的范进中举.txt内的内容. 二.实现过程 2.1.整体思路 整体的框架是在一个page中放入三个button控件(负责控制三个显示界面的切换)和 ...

  5. 【MATLAB】P图神器,初露锋芒:第一周作业

    做完第一周Matlab作业,深感MatLab之强大.(都第几周了,才做第一周作业-) 不在上图像处理这门课的同学,也可以试试在Matlab敲这些代码哦~ 用Matlab P图可有意思呢~ 第一周是粗略 ...

  6. matlab p图,【MATLAB】P图神器,初露锋芒:第一周作业(剧透)

    做完第一周Matlab作业,深感MatLab之强大.(都第几周了,才做第一周作业...) 不在上图像处理这门课的同学,也可以试试在Matlab敲这些代码哦~ 用Matlab P图可有意思呢~ Writ ...

  7. 吴恩达 02.改善深层神经网络:超参数调试、正则化以及优化 第一周作业

    Initialization Welcome to the first assignment of "Improving Deep Neural Networks". Traini ...

  8. 2017-2018-2 《密码与安全新技术》第一周作业

    2017-2018-2 <密码与安全新技术>第一周作业 课程:<密码与安全新技术> 班级:2017级92班 学号:20179225 上课教师:谢四江 上课日期:2018年3月1 ...

  9. 【中文】【吴恩达课后编程作业】Course 5 - 序列模型 - 第一周作业

    [中文][吴恩达课后编程作业]Course 5 - 序列模型 - 第一周作业 - 搭建循环神经网络及其应用 上一篇:[课程5 - 第一周测验]※※※※※ [回到目录]※※※※※下一篇:[课程5 - 第 ...

最新文章

  1. 设计模式学习2 工厂模式
  2. 前端面试-综合问题版
  3. oracle 11g libclntsh.so.10.1,cx_Oracle找不到libclntsh.so.10.1错误
  4. 土耳其电影公司选择Infortrend建立PB级数据存储基础设施
  5. 【玩转cocos2d-x之七】场景类CCScene和布景类CCLayer
  6. 【渝粤教育】国家开放大学2018年秋季 1126t社会医学 参考试题
  7. 使用 dojo/query
  8. C++之文件操作探究(四):读文件——二进制文件
  9. Bitmap 和Drawable 的区别
  10. 大一大学计算机考试考什么,【大学生计算机基础考题】 计算机基础大一考试题...
  11. 【智能制造】请拿走这份精益培训PPT,不谢!
  12. C语言数组排序——选择排序
  13. 路由在电话网和计算机网中的区别,计算机猫和路由器之间有什么区别
  14. [C++STL] Priority Queue 介绍及源码分析
  15. 转载:HTTP调试工具:Fiddler的使用方法介绍
  16. kali之beef的使用
  17. Jsoup实现网络爬虫抓取数据
  18. FLUENT中关于边界和域的操作
  19. ker矩阵是什么意思_矩阵形式下的最小二乘法推导
  20. Elixir-Atoms

热门文章

  1. 聊聊信号的回勾和过冲(转)
  2. 使用AT指令发送PDU短信的全过程
  3. 10.27 sort
  4. 蓝桥杯历届试题 剪格子 (DFS)
  5. 拒绝卡顿,揭秘盒马鲜生 Android 短视频秒播优化方案
  6. 植树节快乐|用小学数学到高数的知识思考种树,你能种到哪一步?
  7. 商越加入阿里云原生合作伙伴计划,共创智慧采购新生态
  8. 政企应用如何构筑安全合规的互联内容分发加速?
  9. 2020 阿里云原生实战峰会开幕 云原生落地的正确姿势
  10. 一文读懂人类信息存储进化史