计算几何,向量——cf995c
网上的题解直接用随机过的,
自己用模拟就模拟三个向量的和并就模拟不出来。。
以后再回头看看
#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的更多相关文章
- NOIP考点
NOIP考点 基础算法 图 树 数论 数据结构 动态规划 搜索 其他算法 省选知识点汇总 图论 数据结构 字符串相关算法及数据结构 数学 计算几何 搜索 动态规划 其他算法 转自:巨佬的博客 加*号是 ...
- [省选]板块(shenben已经AFO!!!)
shenben已经AFO!!! 部分摘抄自网络 同样的,加粗是重点,星号是选学 图论 网络流(dinic,ISAP选一个,费用流写EK就行.*zkw费用流),二分图 点分治,边分治,*动态点分治 树链 ...
- sdut 2603:Rescue The Princess(第四届山东省省赛原题,计算几何,向量旋转 + 向量交点)
Rescue The Princess Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^ 题目描述 Several days ago, a b ...
- UVa 11437:Triangle Fun(计算几何综合应用,求直线交点,向量运算,求三角形面积)
Problem ATriangle Fun Input: Standard Input Output: Standard Output In the picture below you can see ...
- BZOJ1278: 向量vector(计算几何 随机化乱搞)
题意 题目链接 Sol 讲一下我的乱搞做法.... 首先我们可以按极角排序.然后对\(y\)轴上方/下方的加起来分别求模长取个最大值.. 这样一次是\(O(n)\)的. 我们可以对所有向量每次随机化旋 ...
- [知识点]计算几何I——基础知识与多边形面积
// 此博文为迁移而来,写于2015年4月9日,不代表本人现在的观点与看法.原始地址:http://blog.sina.com.cn/s/blog_6022c4720102vxaq.html 1.前言 ...
- HDU2948Geometry Darts(简单计算几何)
题目大意就是说两个人掷飞镖,飞镖在所给定的图形内就记一分,现在给定N个图形(圆.三角形和矩形),问每一次比赛(没人分别掷三次)谁赢. #include <map> #include < ...
- 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 ...
- lrj计算几何模板
整理了一下大白书上的计算几何模板. #include <cstdio> #include <algorithm> #include <cmath> #include ...
随机推荐
- 实现简单的PHP接口,以及使用js/jquery ajax技术调用此接口
主要介绍下如何编写简单的php接口,以及使用js/jquery的ajax技术调用此接口. Php接口文件(check.php): <?php $jsonp_supporter = $_GET[‘ ...
- ARM 汇编 数据处理指令
一. 如何把数据放到寄存器中 1. 数据搬移指令 mov , mvn 1) 指令格式:<opcode><cond>{s} Rd, operand <操作 ...
- linux 下格式化命令小记
mkfs.ext4 /dev/sda1 # 格式化为ext4分区mkfs.ext3 /dev/sda1 # 格式化为ext3分区mkfs.ext2 /dev/sda1 # 格式化为e ...
- html input 上capture 参数在 安卓 苹果上的异同
安卓上 <input type="file" accept="image/*" capture="camera"> //只调用相 ...
- HIVE常用SQL语句及语法
HIVE建内部表语句 create table dll102.sougou (id string,pwd string,name string,count int,seqno int,address ...
- php mysql函数库总结(一)
连接mysqlresource mysql_connect(host,username,password);设置交互字符集bool mysql_set_charset("utf8|gbk&q ...
- thinkphp 动态配置
之前的方式都是通过预先定义配置文件的方式,而在具体的操作方法里面,我们仍然可以对某些参数进行动态配置(或者增加新的配置),主要是指那些还没有被使用的参数. 设置新的值: C('参数名称','新的参数值 ...
- paper 15 :整理的CV代码合集
这篇blog,原来是西弗吉利亚大学的Li xin整理的,CV代码相当的全,不知道要经过多长时间的积累才会有这么丰富的资源,在此谢谢LI Xin .我现在分享给大家,希望可以共同进步!还有,我需要说一下 ...
- Delphi Xml
用递归方法,使用 xml 文档生成 Treeview 树形视图.由于是动态生成,所以可以通过修改 xml 的逻辑来定制 Treeview 的结构,从而实现了 xml 对 Treeview 的动态配置, ...
- NX二次开发-获取面的法向向量UF_MODL_ask_face_data
NX9+VS2012 #include <uf.h> #include <uf_modl.h> #include <uf_obj.h> #include <u ...