计算出中轴能覆盖到某个点的极角范围,最大覆盖次数即是答案。

首先把中轴和点重合,此时中轴的角度为theta = atan(y/x),

然后以原点为圆心旋转点和抛物线相交求出之间的夹角,

把x = a*y*y 化成极坐标下r cosθ = a *r *r (1 -  cos2θ) ,解方程得到

极角范围应该为[theta-θ, theta+θ]。

有了极角范围,排序以后扫描线。

写的时候须小心的坑点:

1.theta-θ的范围可能超过[0, 2*pi],需要取余。

2.取余以后有可能有end < begin的情况,需要在最左端手动添加事件点。

3.端点是都可以包括的,当极角相同时,入点事件优先于出点事件。

/*********************************************************
* ------------------ *
* author AbyssFish *
**********************************************************/
#include<cstdio>
#include<iostream>
#include<string>
#include<cstring>
#include<queue>
#include<vector>
#include<stack>
#include<map>
#include<set>
#include<algorithm>
#include<cmath>
#include<numeric>
#include<climits>
using namespace std; typedef long double ld;
const int maxn = 3e4+;
double x[maxn], y[maxn]; inline ld sqr(ld x){ return x*x; }
const ld DPI = acosl(-)*; typedef pair<ld,int> ev;
#define fi first
#define se second
vector<ev> evs;
#define pb push_back //#define LOCAL
int main()
{
#ifdef LOCAL
freopen("in.txt","r",stdin);
#endif
//cout<<remainder(-1,2);
int n;
double a;
evs.reserve(maxn*);
while(~scanf("%d%lf",&n,&a)){
int i;
for(i = ; i < n; i++) scanf("%lf",x+i);
for(i = ; i < n; i++) scanf("%lf",y+i);
ld theta, delta, r, be, ed;
evs.clear();
for(i = ; i < n; i++){
theta = atan2l(y[i],x[i]);
r = sqrtl(sqr(x[i])+sqr(y[i]));
delta = acosl( (-+sqrtl(+*sqr(r)*sqr(a)))/(*a*r) );
//if(delta < 0) delta = -delta;
be = remainderl(theta-delta,DPI);
ed = remainderl(theta+delta,DPI);
if(be < ) be += DPI;
if(ed < ) ed += DPI;
evs.pb(ev(be,-));
evs.pb(ev(ed,));
if(ed < be){
evs.pb(ev(,-));
}
}
int ans = , cur = ;
sort(evs.begin(),evs.end());
for(vector<ev> ::iterator it = evs.begin(); it != evs.end(); it++){
cur -= it->se;
//cout<<cur<<endl;
ans = max(ans,cur);
}
printf("%d daze\n", ans);
}
return ;
}

ZOJ 3379 Master Spark的更多相关文章

  1. Spark技术内幕:Client,Master和Worker 通信源码解析

    http://blog.csdn.net/anzhsoft/article/details/30802603 Spark的Cluster Manager可以有几种部署模式: Standlone Mes ...

  2. Spark:Master High Availability(HA)高可用配置的2种实现

    Spark Standalone集群是Master-Slaves架构的集群模式,和大部分的Master-Slaves结构集群一样,存在着Master单点故障的问题.如何解决这个单点故障的问题,Spar ...

  3. 解决在编程方式下无法访问Spark Master问题

    我们可以选择使用spark-shell,spark-submit或者编写代码的方式运行Spark.在产品环境下,利用spark-submit将jar提交到spark,是较为常见的做法.但是在开发期间, ...

  4. Spark启动时的master参数以及Spark的部署方式

    我们在初始化SparkConf时,或者提交Spark任务时,都会有master参数需要设置,如下: conf = SparkConf().setAppName(appName).setMaster(m ...

  5. 【Spark-core学习之三】 Spark集群搭建 & spark-shell & Master HA

    环境 虚拟机:VMware 10 Linux版本:CentOS-6.5-x86_64 客户端:Xshell4 FTP:Xftp4 jdk1.8 scala-2.10.4(依赖jdk1.8) spark ...

  6. 【Spark 深入学习 -09】Spark生态组件及Master节点HA

    ----本节内容------- 1.Spark背景介绍 2.Spark是什么 3.Spark有什么 4.Spark部署 4.1.Spark部署的2方面 4.2.Spark编译 4.3.Spark St ...

  7. 提交任务到spark master -- 分布式计算系统spark学习(四)

    部署暂时先用默认配置,我们来看看如何提交计算程序到spark上面. 拿官方的Python的测试程序搞一下. qpzhang@qpzhangdeMac-mini:~/project/spark-1.3. ...

  8. Spark on YARN模式的安装(spark-1.6.1-bin-hadoop2.6.tgz + hadoop-2.6.0.tar.gz)(master、slave1和slave2)(博主推荐)

    说白了 Spark on YARN模式的安装,它是非常的简单,只需要下载编译好Spark安装包,在一台带有Hadoop YARN客户端的的机器上运行即可.  Spark on YARN简介与运行wor ...

  9. Spark on YARN简介与运行wordcount(master、slave1和slave2)(博主推荐)

    前期博客 Spark on YARN模式的安装(spark-1.6.1-bin-hadoop2.6.tgz +hadoop-2.6.0.tar.gz)(master.slave1和slave2)(博主 ...

随机推荐

  1. x86的字节对齐与不对齐的问题

    比如这么一个结构体struct foo {short s;int   n;}; struct foo bar;假设bar的地址是0x12345670如果不按4字节对齐那么bar.n的地址就是0x123 ...

  2. 2019.03.26 读书笔记 关于for与foreach

    for 是索引器,foreach是迭代器 foreach在movenext()中增加了对集合版本(一个整数,每次对集合修改都+1)的验证,另外反编译后的效果是使用了using(是try finally ...

  3. 全网备份脚本rsync

    一,服务端配置 #!/bin/sh ######################################################### #by:kingle # #use: confi ...

  4. this 显示绑定

    function foo (el) { console.log(el, this.id); } var obj = { id: 'aaa' }; [2,6,3].forEach(foo, obj); ...

  5. Python之装饰器、迭代器和生成器

    在学习python的时候,三大“名器”对没有其他语言编程经验的人来说,应该算是一个小难点,本次博客就博主自己对装饰器.迭代器和生成器理解进行解释. 为什么要使用装饰器 什么是装饰器?“装饰”从字面意思 ...

  6. C#委托的好处

    C#委托的好处 先来看一个例子: 某人有三子,让他们各自带一样东西出门,并带回一头猎物. 可以理解为一种父亲对儿子的委托: 猎物  办法(工具 某工具) 三个人执行委托的方法各不相同 兔子 打猎(工具 ...

  7. 引用SQLHelper类configurationmanager 不存在

    在使用Sqlhelper类时,出现cs0103错误 当前上下文中不存在名称configurationmanager 解决方案,除了using引用using System.Configuration外, ...

  8. 解决:用nvm成功安装nodejs,却无法使用nvm和node命令

    问题 一个前端朋友,用Macbook pro成功安装nvm以及node环境,系统查询不到 $ nvm $ -bash: nvm: command not found $ node $ -bash: n ...

  9. 【Linux】查看磁盘空间大小

    Ubuntu 查看磁盘空间大小命令 df -h Df命令是linux系统以磁盘分区为单位查看文件系统,可以加上参数查看磁盘剩余空间信息, 命令格式: df -hl  显示格式为:  文件系统 容量 已 ...

  10. SpringMvc Controller请求链接忽略大小写(包含拦截器)及@ResponseBody返回String中文乱码处理

    SpringMvc Controller请求链接忽略大小写(包含拦截器)及@ResponseBody返回String中文乱码处理... @RequestMapping(value = "/t ...