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

首先把中轴和点重合,此时中轴的角度为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. Oracle 系统常用命令

    1.基本口令 1.1.show user                               作用:显示当前连接用户 1.2.conn 用户名/密码                       ...

  2. http反向代理之haproxy详解

    1.反向代理定义 反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求 ...

  3. mysql存储过程嵌套循环并分页处理数据

    业务背景:公司存证产品升级,随着数据量的增加,存证产品线按业务分表,导致以往的存证关联数据需要做数据同步更新.版本发布前,通过当前存储过程解决数据升级问题. ##创建存证文档关联情况下更新所用存储过程 ...

  4. URAL 1252 ——Sorting the Tombstones——————【gcd的应用】

    Sorting the Tombstones Time Limit:1000MS     Memory Limit:65536KB     64bit IO Format:%I64d & %I ...

  5. 细说C#中的序列化与反序列化的基本原理和过程

    虽然我们平时都使用第三方库来进行序列化和反序列化,用起来也很方便,但至少得明白序列化与反序列化的基本原理. 懂得人就别看了! 注意:从.NET Framework 2.0 开始,序列化格式化器类Soa ...

  6. JavaScript对象 创建对象(一)

    创建对象  --以下内容来自JavaScript高级程序设计 工厂模式 用函数来封装以特定接口创建对象的细节. function createPerson(name, age, job){ var o ...

  7. mysql安装与使用

    一.Mysql官方下载地址:https://www.mysql.com/downloads/ 二.下载 Community Server,这个版本是完全免费的  https://dev.mysql.c ...

  8. win10x系统下的Git下载安装

    git安装和使用百度一下就有,官方地址https://git-scm.com/book/zh/v1/起步-安装-Git 但是说的并不是很详细,自己记录一下, 首先我们去官网下载一个git 有两个下载地 ...

  9. Datatable paging,Repeater with Paging

    /// <summary> /// 塗聚文 /// 20140225 /// </summary> public partial class DatatablePage : S ...

  10. SQL Server日期格式化

    0   或   100   (*)     默认值   mon   dd   yyyy   hh:miAM(或   PM)       1   101   美国   mm/dd/yyyy       ...