ZOJ 3379 Master Spark
计算出中轴能覆盖到某个点的极角范围,最大覆盖次数即是答案。
首先把中轴和点重合,此时中轴的角度为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的更多相关文章
- Spark技术内幕:Client,Master和Worker 通信源码解析
http://blog.csdn.net/anzhsoft/article/details/30802603 Spark的Cluster Manager可以有几种部署模式: Standlone Mes ...
- Spark:Master High Availability(HA)高可用配置的2种实现
Spark Standalone集群是Master-Slaves架构的集群模式,和大部分的Master-Slaves结构集群一样,存在着Master单点故障的问题.如何解决这个单点故障的问题,Spar ...
- 解决在编程方式下无法访问Spark Master问题
我们可以选择使用spark-shell,spark-submit或者编写代码的方式运行Spark.在产品环境下,利用spark-submit将jar提交到spark,是较为常见的做法.但是在开发期间, ...
- Spark启动时的master参数以及Spark的部署方式
我们在初始化SparkConf时,或者提交Spark任务时,都会有master参数需要设置,如下: conf = SparkConf().setAppName(appName).setMaster(m ...
- 【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 ...
- 【Spark 深入学习 -09】Spark生态组件及Master节点HA
----本节内容------- 1.Spark背景介绍 2.Spark是什么 3.Spark有什么 4.Spark部署 4.1.Spark部署的2方面 4.2.Spark编译 4.3.Spark St ...
- 提交任务到spark master -- 分布式计算系统spark学习(四)
部署暂时先用默认配置,我们来看看如何提交计算程序到spark上面. 拿官方的Python的测试程序搞一下. qpzhang@qpzhangdeMac-mini:~/project/spark-1.3. ...
- 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 ...
- 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)(博主 ...
随机推荐
- mysql把之前表单进行拆分
今天有个任务是需要把之前的历史数据做一个清理. 原历史数据 很多电话号码是放到了一起.所以需要新建一个联系方式表.然后进行增加 新建表格如下: 然后再进行查询数据. SELECT a.uid,subs ...
- 文献综述三:基于JSP的商品信息管理系统设计与开发
一.基本信息 标题:基于JSP的商品信息管理系统设计与开发 时间:2015 出版源:Computer Knowledge and Technology 文件分类:jsp技术的系统开发 二.研究背景 通 ...
- HUID 5558 Alice's Classified Message 后缀数组+单调栈+二分
http://acm.hdu.edu.cn/showproblem.php?pid=5558 对于每个后缀suffix(i),想要在前面i - 1个suffix中找到一个pos,使得LCP最大.这样做 ...
- opensuse12.3 桌面设置备忘录
工作空间外观 窗口装饰 ghost deco2.2 光标主题 ringG 桌面主题 ghost 欢迎屏幕 login-scan-splash-cg 应用程序外观 风格 部件样式 Oxygen 颜色 g ...
- python 对列表去重,并保持列表原来顺序
mailto = ['cc', 'bbbb', 'afa', 'sss', 'bbbb', 'cc', 'shafa'] addr_to = list(set(mailto)) addr_to.sor ...
- myeclipse更改类或者是配置文件不用重启tomcat的方法
一.修改java代码(如action)无需重启与部署方法 方法1:在WebRoot下的META-INF文件夹中新建一个名为context.xml文件,里面添加如下内容(要区分大小写): <Con ...
- MySQL中在原表中做数据去重(按日期去重,保留id最小的记录)
表名称 code600300 delete from code600300 where id not in (select minid from (select min(id) as minid fr ...
- 1729 单词查找树 2000年NOI全国竞赛
1729 单词查找树 2000年NOI全国竞赛 时间限制: 2 s 空间限制: 128000 KB 题目等级 : 大师 Master 题目描述 Description 在进行文法分析的 ...
- javascript的对象创建模式---命名空间模式
javascript中对象的概念是很普遍的,对象是是对象,数组是对象,函数也是对象,字符串其实也是对象.常见的对象创建方法有对象字面量.构造函数创建.我们先来看看对象的创建还有哪些更高级的模式. 一. ...
- centOs升级
因为军佬放弃制作Centos7的网络重装包,又Centos7的安装引导和6有较大区别所以,选择曲线救国(技术不行,只能这样乱搞)前文:Centos6.9一键重装包https://ppx.ink/net ...