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

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

以后再回头看看

#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. Mysql优化-分区

    分区简介 分区是根据一定的规则,数据库把一个表分解成多个更小的.更容易管理的部分.就访问数据库应用而言,逻辑上就只有一个表或者一个索引,但实际上这个表可能有N个物理分区对象组成,每个分区都是一个独立的 ...

  2. GitHub排名TOP30的机器学习开源项目

    对于机器学习者来说,阅读开源代码并基于代码构建自己的项目,是一个非常有效的学习方法.看看以下这些Github上平均star为3558的开源项目,你错了哪些? 1. FastText:快速文本表示和文本 ...

  3. nacos注册中心配置命名服务不生效问题

    nacos作为注册中心指定命名空间,配置如下: 但是启动之后发现服务都默认注册到了public这个命名空间下面,也就是指定的命名空间不生效 这是因为注册中心使用的命名空间的配置不是nacos.conf ...

  4. jQuery - 动画相关

    // 显示隐藏 $("div").show(); // 显示 $("div").hide(); // 隐藏 // 显示过程3秒, 3秒之内, 元素的宽,高和透明 ...

  5. 在electron-vue项目中使用element-ui

    1.安装element-ui npm install element-ui -S 2.在main.js中 import ElementUI from 'element-ui'import 'eleme ...

  6. CSP-S 2019 —— 一个精神病人的呓语

    此生无悔入OI(话说上次的“此生无悔”还是在B站上发的弹幕2333. $HZOI$们,我们要加油!QwQ (挖坑 写在前面 学了一年,拿了$160$,也无所谓,失败者不会被人记住. 最后想做的,就是把 ...

  7. CocoaPods更新2018年11月06日16:06:48

    https://gems.ruby-china.org点进去就知道了…… CocoaPods命令 更新 sudo gem install -n /usr/local/bin cocoapods --p ...

  8. 大神给你分析HTTPS和HTTP的区别

    今天在做雅虎的时候,发现用第三方工具截取不到客户端与服务端的通讯,以前重来没碰到过这种情况,仔细看了看,它的url请求时基于https的,gg了下发现原来https协议和http有着很大的区别.总的来 ...

  9. boost库之pool编译错误

    1,编译错误截图 2,解决方法 这是由于没有链接对应的库导致的错误,在编译命令中加上 -lboost_system选项即可.

  10. FIR和IIR设计指标