博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【STSRM13】木之本樱
阅读量:7223 次
发布时间:2019-06-29

本文共 1077 字,大约阅读时间需要 3 分钟。

【题意】抽象模型后转化为:给定n个直线,ans+=C(x,4)*8,x为每个经过直线数>=4的点的直线数,不存在平行直线。

【算法】数学

【题解】

运用了一个很简单的道理:经过同一个点的线段互相相交。

O(n^3),枚举直线i和j相交,然后枚举后面直线判断是否过交点的条数x,将C(x,2)累加入答案。

O(n^2*log n),只要O(n^2)跑一边交点(不去重),排序,统计相同交点有几个就可以得知经过该交点的直线数了。

访问x次,则可由1+2+3+...+n-1=x求得n。

注意多关键字double排序。

注意eps=1e-6足矣。

#include
#include
#include
#include
#include
#define ll long longusing namespace std;int read(){ char c;int s=0,t=1; while(!isdigit(c=getchar()))if(c=='-')t=-1; do{s=s*10+c-'0';}while(isdigit(c=getchar())); return s*t;}/*------------------------------------------------------------*/const int inf=0x3f3f3f3f,maxn=810,maxN=640100;const double eps=1e-6;struct cyc{
double x,y;}anss[maxN];int n,x1[maxn],x2[maxn],y1_[maxn],y2[maxn],tot;double k[maxn],b[maxn];ll c[maxn],d[maxN];void insert(double x,double y){anss[++tot].x=x;anss[tot].y=y;}bool cmp(cyc a,cyc b){
return fabs(a.x-b.x)>eps?a.x
View Code

 

转载于:https://www.cnblogs.com/onioncyc/p/7346770.html

你可能感兴趣的文章
yii2.0高级模板归档文件windows7下安装
查看>>
centos 最小化安装pycharm
查看>>
IMPROVING IOS UNIT TESTS WITH OCMOCK
查看>>
在客户端显示服务器端任务处理进度条
查看>>
查找最相近的字符串
查看>>
map的运用
查看>>
mybatis--MapperScannerConfigurer
查看>>
【笔记】mysql两条数据的某个属性值互换
查看>>
leetcode—Populating Next Right Pointers in Each Node
查看>>
python发起请求提示UnicodeEncodeError
查看>>
文件夹搜索不能用【弹出意外错误,操作无法实现】如何解决呢
查看>>
C程序的存储空间布局
查看>>
OpenStack 的防火墙规则流程
查看>>
环境变量 安装SU
查看>>
请注意,再次记住, centos7,fedora 24中 没有iptables服务, 而使用的firewalld, 也可以安装 iptables-services程序来实现...
查看>>
Overloading Django Form Fields
查看>>
JVM内幕:Java虚拟机详解
查看>>
An incompatible version 1.1.14 of APR based Apache Tomcat Native library is installed, while Tomcat
查看>>
高并发与负载均衡-nginx-反向代理概念
查看>>
Easyui DataGrid DateRange Filter 漂亮实用的日期区间段筛选功能
查看>>