【计算几何】【极角序】【二分】bzoj1914 [Usaco2010 OPen]Triangle Counting 数三角形
极角排序后枚举每个点,计算其与原点连线的左侧的半平面内的点与其组成的三角形数(二分/尺取),这些都不是黄金三角形。
补集转化,用平面内所有三角形的个数(C(n,3))减去这些即可。
精度很宽松,几乎不用管。
#include<cstdio>
#include<algorithm>
#include<cmath>
using namespace std;
typedef long long ll;
typedef double db;
#define N 100001
const db PI=acos(-1.0);
ll ans;
db jiao[N];
int n;
int main()
{db x,y;scanf("%d",&n);for(int i=1;i<=n;++i){scanf("%lf%lf",&x,&y);db t=atan2(y,x);jiao[i]=(t<0?t+2.0*PI:t);}sort(jiao+1,jiao+n+1);for(int i=1;i<=n;++i)if(jiao[i]<=PI){int ef=upper_bound(jiao+1,jiao+n+1,jiao[i]+PI)-(jiao+i)-1;ans+=(((ll)ef*(ll)(ef-1))>>1);}else{int ef=upper_bound(jiao+1,jiao+n+1,jiao[i]-PI)-(jiao+1);ef+=(n-i);ans+=(((ll)ef*(ll)(ef-1))>>1);}printf("%lld\n",(ll)n*(ll)(n-1)*(ll)(n-2)/6-ans);return 0;
}
转载于:https://www.cnblogs.com/autsky-jadek/p/4369172.html
【计算几何】【极角序】【二分】bzoj1914 [Usaco2010 OPen]Triangle Counting 数三角形相关推荐
- bzoj 1914: [Usaco2010 OPen]Triangle Counting 数三角形——极角排序
Description 在一只大灰狼偷偷潜入Farmer Don的牛群被群牛发现后,贝西现在不得不履行着她站岗的职责.从她的守卫塔向下瞭望简直就是一件烦透了的事情.她决定做一些开发智力的小练习,防止她 ...
- AMNO.6 给出一个不多于5位的整数,要求 1、求出它是几位数 2、分别输出每一位数字 3、按逆序输出各位数字,例如原数为321,应输出123 输入 一个不大于5位的数字
题目描述 给出一个不多于5位的整数,要求 1.求出它是几位数 2.分别输出每一位数字 3.按逆序输出各位数字,例如原数为321,应输出123 输入 一个不大于5位的数字 输出 三行 第一行 位数 第二 ...
- NYOJ 982 Triangle Counting (数学题)
Triangle Counting 时间限制:1000 ms | 内存限制:65535 KB 描述 You are given n rods of length 1, 2-, n. You hav ...
- UVA 11401 Triangle Counting(详解)
Triangle Counting 分析一下 以八为例子 1 2 3 4 5 6 7 8 以(7,8)为边,就有6 7 8, 5 7 8, 4 7 8 ,3 7 8 ,2 7 8 五种情况: 以(6, ...
- UVA 11401 - Triangle Counting
Problem G Triangle Counting Input: Standard Input Output: Standard Output You are given n rods of le ...
- Triangle Counting【数学】
Triangle Counting UVA - 11401 题目传送门 题目大意:输入一个整数n,求在1到n中选取三条边能够组成多少种三角形. AC代码: #include <cstdio> ...
- uva11401:Triangle Counting 递推 数学
uva11401:Triangle Counting 题目读不清楚的下场就是多做两个小时...从1-n中任选3个不重复数字(不重复啊!!坑爹啊!)问能组成三角形的有多少个, 显然1~n能组成的三角形集 ...
- 给出一个不多于5位的整数,要求 1、求出它是几位数 2、分别输出每一位数字 3、按逆序输出各位数字,例如原数为321,应输出123。
撰写人--软工二班--陈喜平 题目描述 给出一个不多于5位的整数,要求 1.求出它是几位数 2.分别输出每一位数字 3.按逆序输出各位数字,例如原数为321,应输出123. 将下面的程序填写完整. # ...
- 给一个不多于5位的正整数,要求: ①求出它是几位数②分别输出每一位数③按逆序输出各位数字,例如原数为123,应输出321
给一个不多于5位的正整数,要求: ①求出它是几位数②分别输出每一位数③按逆序输出各位数字,例如原数为123,应输出321 int main() {int n;int a,b,c,d,e;//个,十,百 ...
最新文章
- debian安装oracle jdk
- WINCE5.0和WINCE6.0的内存与系统架构
- ITK:创建另一个图像实例
- TensorFlow: Could not load requested Qt binding.
- eclipse怎样改编码格式_Eclipse中各种编码格式及设置
- 微信无连接服务器1.104,微信成语猜猜看太子少师答案汇总 太子少师1-104关攻略...
- Entityframework Code First 系列
- js隐藏打开项目隐藏编辑 和删除按钮
- 全站HTTPS来了!有何优势、与HTTP有何不同
- 【TSP】基于matlab蚁群算法求解旅行商问题【含Matlab源码 1130期】
- JS 幻灯片代码(含自动播放)
- 第六周博客作业西北师范大学|李晓婷
- tibco往服务器发消息,Tibco EMS 初级使用方法小结
- Beer Bill(签到题)
- Dynamics 365 窗体中设置可编辑的子网格
- 详解Python中get函数的用法(附代码)
- Solution to no ADO.NET in VS2019 VS里没有ADO的解决办法
- 多人同时编辑excel,只需一招就搞定
- 联想笔记本更换固态硬盘和重装系统
- python使用nltk进行中文语料库的词频分布统计
热门文章
- Java开发工程师的发展前景如何?
- 关于两栏布局,三栏布局,一级点击三角触发select的onchange事件问题
- 转:mysql show processlist命令 详解
- Minimum edit distance(levenshtein distance)(最小编辑距离)初探
- 微信小程序chooseImage(从本地相册选择图片或使用相机拍照)
- markdown这么好用的东西我才知道。。。多么不折腾的我。。。
- [Unity] Unity3D研究院编辑器之自定义默认资源的Inspector面板
- [原] Cgroup CPU, Blkio 测试
- [转]送给和我一样曾经浮躁过的PHP程序猿
- 深度学习入门实例——基于keras的mnist手写数字识别