hahaha
【问题描述】
小Q对计算几何有着浓厚的兴趣。他经常对着平面直角坐标系发呆,思考一些有趣的问题。今天,他想到了一个十分有意思的题目:
首先,小Q会在x轴正半轴和y轴正半轴分别挑选n个点。随后,他将轴的点与轴的点一一连接,形成n条线段,并保证任意两条线段不相交。小Q确定这种连接方式有且仅有一种。最后,小Q会给出m个询问。对于每个询问,将会给定一个点p(px,py),请回答线段OP与n条线段会产生多少个交点?
小Q找到了正在钻研数据结构的你,希望你可以帮他解决这道难题。
【输入格式】
第1行包含一个正整数n,表示线段的数量;
第2行包含个正整数,表示小Q在x轴选取的点的横坐标;
第3行包含个正整数,表示小Q在y轴选取的点的纵坐标;
第4行包含一个正整数m,表示询问数量;
随后m行,每行包含两个正整数px,py,表示询问中给定的点的横、纵坐标。
【输出格式】
共m行,每行包含一个非负整数,表示你对这条询问给出的答案。
【样例输入】
3
4 5 3
3 5 4
2
1 1
3 3
【样例输出】
0
3
【样例解释】
然后塔里啥都没有。
【数据规模与约定】
对于的数据,。
对于的数据,,坐标范围。
【题目分析】
把x轴和y轴上的点sort一遍,因为要保证两条线段不相交。
然后二分这些线段
判断线段是否相交的check函数,把xx1,带入要比较的线段解析式中,如果得到的Y<=yy1说明相交
#include <iostream>
#include <cstring>
#include <algorithm>
#include <cstdio>
using namespace std;
int n,m;
int xx,yy;
int x[],y[];
bool check(int num,int xx1,int yy1)
{
double Y=(double)y[num]-(double)xx1*(double)y[num]/(double)x[num];
return Y<=yy1;
}
int main()
{
freopen("hahaha.in","r",stdin);
freopen("hahaha.out","w",stdout);
scanf("%d",&n);
for(int i=;i<=n;i++)
scanf("%d",&x[i]);
for(int i=;i<=n;i++)
scanf("%d",&y[i]);
sort(x+,x+n+);
sort(y+,y+n+);
n++;
x[n]=1e9;y[n]=1e9;
scanf("%d",&m);
for(int i=;i<=m;i++)
{
int ans=;
scanf("%d%d",&xx,&yy);
int l=,r=n;
while(l<=r)
{
int mid=(l+r)>>;
if(check(mid,xx,yy)) l=mid+,ans=max(ans,mid);
else r=mid-;
}
printf("%d\n",ans);
}
}
hahaha的更多相关文章
- ASP.Net MVC4+Memcached+CodeFirst实现分布式缓存
ASP.Net MVC4+Memcached+CodeFirst实现分布式缓存 part 1:给我点时间,允许我感慨一下2016年 正好有时间,总结一下最近使用的一些技术,也算是为2016年画上一个完 ...
- 跟着老男孩教育学Python开发【第三篇】:Python函数
set 无序,不重复,可嵌套. 函数 创建函数: 1.def关键字,创建函数 2.函数名 3.() 4.函数体 5.返回值 发邮件函数 def sendmail(): import smtpl ...
- ZooKeeper1 利用虚拟机搭建自己的ZooKeeper集群
前言: 前段时间自己参考网上的文章,梳理了一下基于分布式环境部署的业务系统在解决数据一致性问题上的方案,其中有一个方案是使用ZooKeeper,加之在大数据处理中,ZooKeeper确实起 ...
- Java 8函数编程轻松入门(三)默认方法详解(default function)
default出现的原因 Java 8中对API最大的改变在于集合类,Java在持续演进,但是它一直保持着向后兼容. 在Java 8中为Collection接口增加了stream方法,这意味着所有实现 ...
- java自定义注解类
一.前言 今天阅读帆哥代码的时候,看到了之前没有见过的新东西, 比如java自定义注解类,如何获取注解,如何反射内部类,this$0是什么意思? 于是乎,学习并整理了一下. 二.代码示例 import ...
- mongodb安装&简单使用
转自Mac下使用brew安装mongodb,按着步骤已成功安装. brew常用命令 1.更新brew本身 brew update 2.使用brew安装软件 1 brew install soft_na ...
- 前端之JavaScript基础
前端之JavaScript基础 本节内容 JS概述 JS基础语法 JS循环控制 ECMA对象 BOM对象 DOM对象 1. JS概述 1.1. javascript历史 1992年Nombas开发出C ...
- [原]导入OpenStreetMap海图数据,并在GeoServer上发布
转载请注明作者think8848和出处(http://think8848.cnblogs.com) 上回我们说到如何<在GeoServer中为OpenStreetMap数据设置OSM样式> ...
- Python3 面向对象(基础篇)
面向对象 关于面向对象的标准定义网上有很多,不再讲述,现在我们来通俗点理解: 面向对象编程相对于面向过程编程和函数式编程来说,看的更长远,实现功能相对更简单. 面向对象:对象就是物体,这种编程思想就是 ...
随机推荐
- C#: 启动画面设计
Windows Form经常会在启动主界面的时候预先有启动画面,这也是因为用户体验的需要,用户知道已经启动application,而不是在load resource的时候等待.因此这里不能用单线程的思 ...
- 关于 VS 无法转到定义和无法转到使用的问题
今天提交完代码以后突然发现 咦 怎么F12 .点击右键的方法都不能转到定义了 转到引用 也提示 没有发现 重启VS 还是不行 .去找王晓 他也不清楚(其实我知道 他应该也不清楚 ...
- Easyui主从表设计
js代码: // 全局变量 var loading; var grid; var mainGrid; var dlg_Edit; var dlg_Edit_form; var virpath = &q ...
- SQL2008无法连接到.\SQLEXPRESS,用户'sa'登录失败(错误18456)图文解决方法
出现问题 :标题: 连接到服务器 ------------------------------ 无法连接到 .\SQLEXPRESS. ------------------------------ ...
- 11.Java反射机制 哦对了,前面的序号来自随笔关于编程之路的思索第一篇
基本概念 在Java运行时环境中,对于任意一个类,能否知道这个类有哪些属性和方法?对于任意一个对象,能否调用它的任意一个方法? 答案是肯定的. 这种动态获取类的信息以及动态调用对象的方法的功能来自于J ...
- 夺命雷公狗---Thinkphp----6之管理员的增删改查之-未验证
首先我们创建多一个控制器UserController.class.php,主要用于管理员的增删改查操作: 代码如下所示: <?php namespace Admin\Controller; us ...
- 夺命雷公狗---DEDECMS----28dedecms浏览次数的完成
在页面里显示每部影视作品的浏览量,显示方法如下所示: 首先我们要在内容模板文件里增加显示区: 然后到后保存下文章页的内容页的模版,然后去看下对我们的样式有没有什么影响: 看到这里我们就已经成功一点点噢 ...
- [Ubuntu] Ubuntu DNS服务器配置
服务器IP:10.68.19.61 操作系统:Ubuntu 13.04 DNS程序:Bind9 测试域名:mycloud.com 目标IP:10.68.19.134 配置步骤 1.安装BIND9程序包 ...
- Tomcat内存溢出解决办法
使用Java程序从数据库中查询大量的数据时出现异常:java.lang.OutOfMemoryError: Java heap space在JVM中如果98%的时间是用于GC且可用的 Heap siz ...
- drupal 做301跳转(删除url里的www), 关键代码 可用到任何网站
//hook_init(); function ex_init(){ //删除 url 前面的 www if (substr($_SERVER['HTTP_HOST'],0,3) == 'www'){ ...