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)(博主 ...
随机推荐
- PIE SDK屏幕坐标和地图坐标转换
1. 功能简介 屏幕坐标和地图坐标转换,就是字面意思,将电脑屏幕的坐标转换为带有空间信息的地图坐标,主要运用PIE SDK地图控件的ToMapPoint()方法,而地图坐标转换为设备坐标(屏幕),用的 ...
- PIE SDK图像镜像
1.算法功能简介 图像镜像可生成图像的水平镜像.垂直镜像和水平垂直镜像.水平镜像是图像以垂直中线为轴, 将图像左右半部对调:垂直镜像是图像以水平中线为轴,将图像上下半部对调. PIE支持算法功能的 ...
- Linux批量杀掉挂掉的进程
$ `ps aux | grep test | grep -v grep | awk '{print $2}'` 杀掉含有test且不含有grep的进程,后面的 awk '{print $2}' 是进 ...
- html自定义垂直导航菜单(多级导航菜单,去掉font-awesome图标,添加自己的箭头图标)
这次在原先html自定义垂直导航菜单的基础上做了比较大的改动: 1.去掉了font-awesome图标,上级菜单右边的箭头是自己用css写的,具体参考<css三角箭头>. 2.去掉了初始化 ...
- spark第十八篇:Tuning Spark 调优
由于大多数Spark应用都是在内存中计算的,所以,Spark程序的瓶颈可能是集群中的任何资源,比如CPU,网络带宽或者内存等.本指南主要涵盖两个主题: 1.数据序列化.这对于良好的网络性能至关重要,还 ...
- rancher初级(搭建+基本操作+web应用部署)
Rancher搭建 首先rancher需要安装了docker的linux环境,我的系统版本为 在docker的基础上启动rancher服务器,Rancher 服务器是一个 Docker image,所 ...
- xsd表示byte[]的类型
byte[]对应xs:base64Binary http://stackoverflow.com/questions/5912526/representing-byte-array-as-an-xsd ...
- Ubuntu 14.04 下安装搜狗输入法,不要删除ibus
今天安装了 sougou输入法.在ubuntu下面,然后网上一般的帖子都是要求你先删除 ibus 但是你删除了ibus之后,就会导系统设置被删除很多设置项,甚至无法打开, 所有你设置ubuntu输入法 ...
- 无监督学习(Unsupervised Learning)
无监督学习(Unsupervised Learning) 聚类无监督学习 特点 只给出了样本, 但是没有提供标签 通过无监督学习算法给出的样本分成几个族(cluster), 分出来的类别不是我们自己规 ...
- windows下libcurl+openssl编译与使用配置
之前使用过libcurl, 编译也是最简单的版本, 不需要openssl, 即不需要支持https, 所以编译和使用都很正常. 但要使用openssl就很麻烦了, 我花了差不多两天去编译和调用, 记录 ...