BZOJ_1610_[Usaco2008_Feb]_Line连线游戏_(计算几何基础+暴力)

描述



http://www.lydsy.com/JudgeOnline/problem.php?id=1610

给出n个点,问两两确定的直线中,斜率不同的共有多少条.

分析



暴力枚举直线,算出来斜率放在k数组里面(斜率不存在记为INF),然后去个重统计个数就行了.

其实特水...

 1 #include <bits/stdc++.h>
 2 using namespace std;
 3
 4 const int maxn=200+5;
 5 const double eps=1e-8,INF=0x7fffffff;
 6 int n,cnt;
 7 double k[(maxn*maxn)>>1];
 8
 9 struct pt{
10     double x,y;
11     pt(double x=0,double y=0):x(x),y(y){}
12 }p[maxn];
13 int dcmp(double x){ if(fabs(x)<eps) return 0; return x<0?-1:1; }
14 double getk(pt a,pt b){
15     if(dcmp(a.x-b.x)==0) return INF;
16     return (a.y-b.y)/(a.x-b.x);
17 }
18 int main(){
19     scanf("%d",&n);
20     for(int i=1;i<=n;i++) scanf("%lf%lf",&p[i].x,&p[i].y);
21     for(int i=1;i<=n;i++)
22         for(int j=i+1;j<=n;j++)
23             k[++cnt]=getk(p[i],p[j]);
24     sort(k+1,k+cnt+1);
25     int ans=0;
26     for(int i=1;i<=cnt;i++) if(k[i]!=k[i-1]) ans++;
27     printf("%d\n",ans);
28     return 0;
29 }

p.s.

1.也可以用unique去重.注意要先排序.

1610: [Usaco2008 Feb]Line连线游戏

Time Limit: 5 Sec  Memory Limit: 64 MB
Submit: 1810  Solved: 815
[Submit][Status][Discuss]

Description

Farmer
John最近发明了一个游戏,来考验自命不凡的贝茜。游戏开始的时 候,FJ会给贝茜一块画着N (2 <= N <=
200)个不重合的点的木板,其中第i个点 的横、纵坐标分别为X_i和Y_i (-1,000 <= X_i <=1,000;
-1,000 <= Y_i <= 1,000)。 贝茜可以选两个点画一条过它们的直线,当且仅当平面上不存在与画出直线
平行的直线。游戏结束时贝茜的得分,就是她画出的直线的总条数。为了在游戏 中胜出,贝茜找到了你,希望你帮她计算一下最大可能得分。

Input

* 第1行: 输入1个正整数:N

* 第2..N+1行: 第i+1行用2个用空格隔开的整数X_i、Y_i,描述了点i的坐标

Output

第1行: 输出1个整数,表示贝茜的最大得分,即她能画出的互不平行的直线数

Sample Input

4
-1 1
-2 0
0 0
1 1

Sample Output

* 第1行: 输出1个整数,表示贝茜的最大得分,即她能画出的互不平行的直线数

HINT

4 输出说明: 贝茜能画出以下4种斜率的直线:-1,0,1/3以及1。

Source

Silver

时间: 2024-09-29 22:06:27

BZOJ_1610_[Usaco2008_Feb]_Line连线游戏_(计算几何基础+暴力)的相关文章

1610: [Usaco2008 Feb]Line连线游戏

1610: [Usaco2008 Feb]Line连线游戏 Time Limit: 5 Sec  Memory Limit: 64 MB Submit: 1396  Solved: 615 [Submit][Status] Description Farmer John最近发明了一个游戏,来考验自命不凡的贝茜.游戏开始的时 候,FJ会给贝茜一块画着N (2 <= N <= 200)个不重合的点的木板,其中第i个点 的横.纵坐标分别为X_i和Y_i (-1,000 <= X_i <=

[BZOJ1610][Usaco2008 Feb]Line连线游戏

1610: [Usaco2008 Feb]Line连线游戏 Time Limit: 5 Sec  Memory Limit: 64 MB Submit: 2282  Solved: 1022 [Submit][Status][Discuss] Description Farmer John最近发明了一个游戏,来考验自命不凡的贝茜.游戏开始的时 候,FJ会给贝茜一块画着N (2 <= N <= 200)个不重合的点的木板,其中第i个点 的横.纵坐标分别为X_i和Y_i (-1,000 <=

基于Cocos2dx开发卡牌游戏_放开那三国

1.已经实现动态读取地图资源,地图信息记录在excel表格.如果要增加地图,编辑excel后导入至CocoStudio数据编辑器,然后导出成Json文件,放到项目的Resource目录下. 2.SGFight.cpp中的initMap函数的第二个参数就是地图的索引,修改它的值就能实现加载不同副本的效果 测试地图1 测试地图2 2.武将信息也保存在excel表格中.如果要增加,同上的方法. 3.战斗的过程已经实现. 战斗截图1 战斗截图2 4.登录界面 4.项目下载地址(包括源代码和资源文件) 点

【kuangbin专题】计算几何基础(极角相关)

[POJ 1696] Space Ants [题目大意] 给定多个点,对他们按照下面的规则排序,每个都在前一个点组成的左边,并且连线不相交(典型如图) [题目分析] 不断进行极角排序,不断选取一定区域内最符合要求的解 [代码] 1 #include<cstdio> 2 #include<iostream> 3 #include<algorithm> 4 #define ll double 5 using namespace std; 6 const double eps

nyis oj 68 三点顺序 (计算几何基础)

三点顺序 时间限制:1000 ms  |  内存限制:65535 KB 难度:3 描写叙述 如今给你不共线的三个点A,B,C的坐标,它们一定能组成一个三角形,如今让你推断A,B,C是顺时针给出的还是逆时针给出的? 如: 图1:顺时针给出 图2:逆时针给出 <图1>                   <图2> 输入 每行是一组測试数据,有6个整数x1,y1,x2,y2,x3,y3分别表示A,B,C三个点的横纵坐标.(坐标值都在0到10000之间) 输入0 0 0 0 0 0表示输入

计算几何基础——【点积和叉积的用处】

计算几何是算法竞赛的一大块,而叉积是计算机和的基础. 首先叉积是计算说向量之间的叉积,那么我们可以这样定义向量,以及向量的运算符重载. struct Point { double x,y; Point(double x=0,double y=0):x(x),y(y) {} }; typedef Point Vector; Vector operator + (Vector A,Vector B) { return Vector(A.x+B.x,A.y+B.y); } Vector operato

知识点 - 计算几何基础

知识点 - 计算几何基础 讲义 点 我们把点 \(\mathbf r\) 看成从 \(\mathbf 0\) 到 \(\mathbf r\)的向量 \(\vec{\mathbf r}\) #define ftype long double struct point2d { ftype x, y; point2d() {} point2d(ftype x, ftype y): x(x), y(y) {} point2d& operator+=(const point2d &t) { x +=

[原创]html5游戏_五线谱打音符

html5手机游戏—五线谱打音符 1.[用五线谱打唱名] 2.[用唱名打五线谱] 3.[无限练习模式] 用来熟悉五线谱上音符的位置 代码不难,这回注释还是有认真写的[只是废代码没有全部删除...] 效果图: --- 在线地址: http://wangxinsheng.herokuapp.com/staffgame --- 代码: index.html 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="

ML学习分享系列(1)_计算广告小窥[上]

原作:面包包包包包包 改动:寒小阳 && 龙心尘 时间:2016年1月 出处:http://blog.csdn.net/breada/article/details/50572914 http://blog.csdn.net/han_xiaoyang/article/details/50580423 声明:版权全部.转载请联系作者并注明出处 1. 引言 提笔写这篇博客.我的内心是惶恐的.原因非常简单.作为一个资历尚浅的研究生,是没有资格对计算广告这样一个伟大的行业.领域和学科来评头论足的.