FJUT寒假第一周作业浮点数查寻题解
二分强化——浮点数序列查询
已知在二维空间中有n个点,p0,p1……pn-1
已按照x为第一优先级,y为第二优先级从大到小排好序;
即若 pi<pj
则pi.x<pj.x,或者pi.x==pj.x&&pi.y<pj.y
只有一组数据
第一行是两个整数n,m分别代表点的个数和查询次数
接下来n行,每行有二个带三位小数的浮点数x,y代表一个点的坐标
再接下来m行,每行的有4个数字x1,y1,x2,y2代表p1,p2且p1>=p2
其中n,m<=100000;
任意0<=x,y<10^6;
输出n个点所有小于等于p1且大于等于p2的点的下标之和
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
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寒假第一周作业浮点数查寻题解相关推荐
- 寒假-第一周-几何-(点线关系的问题)
寒假第一周:几何 POJ 2318 TOYS POJ 2398 Toy Storage(叉积判断左右+二分) POJ 3304 Segments(思维) POJ 1269 Intersecting L ...
- Boolan第一周笔记(二)对于第一周作业的一点总结
本文主要总结下面的问题: 1.为什么这周的作业里面,创建数组的时候使用堆内存更好: 2.指针指向不同类型走的步数不同. 第一周作业内容如下,题目来自Boolan: 为Date类实现如下成员: 1. 构 ...
- 输出结果为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/ ...
- RT-thread 柿饼UI demo(文本浏览+电子相册) ---- 暨柿饼入门课第一周作业附加题
一.题目要求 完成下图的应用制作,范进中举复制群文件内的范进中举.txt内的内容. 二.实现过程 2.1.整体思路 整体的框架是在一个page中放入三个button控件(负责控制三个显示界面的切换)和 ...
- 【MATLAB】P图神器,初露锋芒:第一周作业
做完第一周Matlab作业,深感MatLab之强大.(都第几周了,才做第一周作业-) 不在上图像处理这门课的同学,也可以试试在Matlab敲这些代码哦~ 用Matlab P图可有意思呢~ 第一周是粗略 ...
- matlab p图,【MATLAB】P图神器,初露锋芒:第一周作业(剧透)
做完第一周Matlab作业,深感MatLab之强大.(都第几周了,才做第一周作业...) 不在上图像处理这门课的同学,也可以试试在Matlab敲这些代码哦~ 用Matlab P图可有意思呢~ Writ ...
- 吴恩达 02.改善深层神经网络:超参数调试、正则化以及优化 第一周作业
Initialization Welcome to the first assignment of "Improving Deep Neural Networks". Traini ...
- 2017-2018-2 《密码与安全新技术》第一周作业
2017-2018-2 <密码与安全新技术>第一周作业 课程:<密码与安全新技术> 班级:2017级92班 学号:20179225 上课教师:谢四江 上课日期:2018年3月1 ...
- 【中文】【吴恩达课后编程作业】Course 5 - 序列模型 - 第一周作业
[中文][吴恩达课后编程作业]Course 5 - 序列模型 - 第一周作业 - 搭建循环神经网络及其应用 上一篇:[课程5 - 第一周测验]※※※※※ [回到目录]※※※※※下一篇:[课程5 - 第 ...
最新文章
- 设计模式学习2 工厂模式
- 前端面试-综合问题版
- oracle 11g libclntsh.so.10.1,cx_Oracle找不到libclntsh.so.10.1错误
- 土耳其电影公司选择Infortrend建立PB级数据存储基础设施
- 【玩转cocos2d-x之七】场景类CCScene和布景类CCLayer
- 【渝粤教育】国家开放大学2018年秋季 1126t社会医学 参考试题
- 使用 dojo/query
- C++之文件操作探究(四):读文件——二进制文件
- Bitmap 和Drawable 的区别
- 大一大学计算机考试考什么,【大学生计算机基础考题】 计算机基础大一考试题...
- 【智能制造】请拿走这份精益培训PPT,不谢!
- C语言数组排序——选择排序
- 路由在电话网和计算机网中的区别,计算机猫和路由器之间有什么区别
- [C++STL] Priority Queue 介绍及源码分析
- 转载:HTTP调试工具:Fiddler的使用方法介绍
- kali之beef的使用
- Jsoup实现网络爬虫抓取数据
- FLUENT中关于边界和域的操作
- ker矩阵是什么意思_矩阵形式下的最小二乘法推导
- Elixir-Atoms