网上的题解直接用随机过的,

自己用模拟就模拟三个向量的和并就模拟不出来。。

以后再回头看看

#include<bits/stdc++.h>
#include<cmath>
using namespace std; const double esp = 1e-;
const int maxn = 1e5+;
const double C = 180.0/acos(-1.0);
struct Vector{
double x,y,len,angle;
int k,id;
}p[maxn];
int cmp(Vector a,Vector b){return a.len>b.len;}
int n; void reverse(Vector &v){
v.k*=-;v.x*=-;v.y*=-;
v.angle=atan2(v.y,v.x)*C;
if(v.angle<)v.angle+=;
}
void add(Vector &a, Vector &b){
a.x+=b.x;a.y+=b.y;
a.len=sqrt(a.x*a.x+a.y*a.y);
a.angle=atan2(a.y,a.x)*C;
if(a.angle<)a.angle+=;
} void Merge(Vector &a,Vector &b,Vector &c){//把c向量加到a向量或者b向量里
double r1=a.angle,r2=c.angle;
if(r1>r2)swap(r1,r2);
double A=min(fabs(r2-r1),fabs(r1-r2+));
if(A<= && A>=){//形成钝角
add(a,c);return;
}
else if(A<=){//形成锐角
reverse(c);
add(a,c);
return;
} r1=b.angle,r2=c.angle;
if(r1>r2)swap(r1,r2);
double B=min(fabs(r2-r1),fabs(r1-r2+));
if(B<= && B>=){
add(b,c);return;
}
else if(B<=){//形成锐角
reverse(c);
add(b,c);
return;
} Vector tmp=b;b=c;c=tmp; r1=a.angle,r2=c.angle;
if(r1>r2)swap(r1,r2);
A=min(fabs(r2-r1),fabs(r1-r2+));
if(A<= && A>=){//形成钝角
add(a,c);return;
}
else if(A<=){//形成锐角
reverse(c);
add(a,c);
return;
}
} int main(){
cin>>n;
for(int i=;i<=n;i++){
scanf("%lf%lf",&p[i].x,&p[i].y);
p[i].len=sqrt(p[i].x*p[i].x+p[i].y*p[i].y);
p[i].angle=atan2(p[i].y,p[i].x)*C;
if(p[i].angle<)
p[i].angle+=;
p[i].id=i;p[i].k=;
}
sort(p+,p++n,cmp); Vector &a=p[], &b=p[];
for(int i=;i<=n;i++){
Vector &c=p[i];
Merge(a,b,c);
if((a.x+b.x)*(a.x+b.x)>=2.25*1e12)
cout<<i<<" NO"; }
/*
cout<<a.x<<" "<<a.y<<'\n';
cout<<b.x<<" "<<b.y<<'\n';*/ int ans[maxn]={};
for(int i=;i<=n;i++)
ans[p[i].id]=p[i].k;
for(int i=;i<=n;i++)cout<<ans[i]<<" ";
}

计算几何,向量——cf995c的更多相关文章

  1. NOIP考点

    NOIP考点 基础算法 图 树 数论 数据结构 动态规划 搜索 其他算法 省选知识点汇总 图论 数据结构 字符串相关算法及数据结构 数学 计算几何 搜索 动态规划 其他算法 转自:巨佬的博客 加*号是 ...

  2. [省选]板块(shenben已经AFO!!!)

    shenben已经AFO!!! 部分摘抄自网络 同样的,加粗是重点,星号是选学 图论 网络流(dinic,ISAP选一个,费用流写EK就行.*zkw费用流),二分图 点分治,边分治,*动态点分治 树链 ...

  3. sdut 2603:Rescue The Princess(第四届山东省省赛原题,计算几何,向量旋转 + 向量交点)

    Rescue The Princess Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^ 题目描述 Several days ago, a b ...

  4. UVa 11437:Triangle Fun(计算几何综合应用,求直线交点,向量运算,求三角形面积)

    Problem ATriangle Fun Input: Standard Input Output: Standard Output In the picture below you can see ...

  5. BZOJ1278: 向量vector(计算几何 随机化乱搞)

    题意 题目链接 Sol 讲一下我的乱搞做法.... 首先我们可以按极角排序.然后对\(y\)轴上方/下方的加起来分别求模长取个最大值.. 这样一次是\(O(n)\)的. 我们可以对所有向量每次随机化旋 ...

  6. [知识点]计算几何I——基础知识与多边形面积

    // 此博文为迁移而来,写于2015年4月9日,不代表本人现在的观点与看法.原始地址:http://blog.sina.com.cn/s/blog_6022c4720102vxaq.html 1.前言 ...

  7. HDU2948Geometry Darts(简单计算几何)

    题目大意就是说两个人掷飞镖,飞镖在所给定的图形内就记一分,现在给定N个图形(圆.三角形和矩形),问每一次比赛(没人分别掷三次)谁赢. #include <map> #include < ...

  8. Codeforces Round #335 (Div. 1) C. Freelancer's Dreams 计算几何

    C. Freelancer's Dreams Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://www.codeforces.com/contes ...

  9. lrj计算几何模板

    整理了一下大白书上的计算几何模板. #include <cstdio> #include <algorithm> #include <cmath> #include ...

随机推荐

  1. Java oop 第13章_多线程

    第13章_多线程 一.   多线程相关的概念:  程序:由某种编程语言开发可执行某些功能的代码组合,它是静态的概念.   进程:当程序被执行时的过程可以理解为讲程序从外存调入内存的过程,会为每一个程序 ...

  2. UNLISTEN - 停止监听通知信息

    SYNOPSIS UNLISTEN { name | * } DESCRIPTION 描述 UNLISTEN 用于删除一个现有的已注册的 NOTIFY 事件. UNLISTEN 取消当前 Postgr ...

  3. mybatis自动生成代码工具(逆向工程)

    MyBatis自动生成实体类(逆向工程) MyBatis属于一种半自动的ORM框架,它需要我们自己编写sql语句和映射文件,但是编写映射文件和sql语句很容易出错,所以mybatis官方提供了Gene ...

  4. Git部署项目

    前言 学习Git的目标是要学会如何部署项目.Git是一种版本控制系统,与之对应的还有CVS和SVN,其中CVS和SVN都是集中式的版本控制,而Git是一种分布式的,在现代项目开发中,大多使用Git来管 ...

  5. 利用字节流文件生成包含多文件的zip文件

    InputStream[] inputStreamsList = new InputStream[jsonArr.size()]; String[] fileNameList = new String ...

  6. ACM-ICPC 训练平台 & 比赛 分析

    the file can download in https://pan.baidu.com/s/1HwoLFHGAG-boQbIn9xIhxA occ5 the article is also pu ...

  7. on windows in superset sql lab error "module object has no attribute sigalrm"

    改下  utils.py   文件 It works after doing the following change (sorry for the massed up alignment, prob ...

  8. PHP setrawcookie() 函数

    定义和用法 setrawcookie() 函数不对 cookie 值进行 URL 编码,发送一个 HTTP cookie. cookie 是由服务器发送到浏览器的变量.cookie 通常是服务器嵌入到 ...

  9. 56 Marvin: 一个支持GPU加速、且不依赖其他库(除cuda和cudnn)的轻量化多维深度学习(deep learning)框架介绍

    0 引言 Marvin是普林斯顿视觉实验室(PrincetonVision)于2015年提出的轻量化GPU加速的多维深度学习网络框架.该框架采用纯c/c++编写,除了cuda和cudnn以外,不依赖其 ...

  10. APIO 2017 商旅 洛谷3778

    Description 在广阔的澳大利亚内陆地区长途跋涉后,你孤身一人带着一个背包来到了科巴.你被这个城市发达而美丽的市场所 深深吸引,决定定居于此,做一个商人.科巴有个集市,集市用从1到N的整数编号 ...