[USACO08FEB]连线游戏Game of Lines
题目背景
Farmer John最近发明了一个游戏,来考验自命不凡的贝茜。 题目描述
Farmer John has challenged Bessie to the following game: FJ has a board with dots marked at N ( ≤ N ≤ ) distinct lattice points. Dot i has the integer coordinates Xi and Yi (-, ≤ Xi ≤ ,; -, ≤ Yi ≤ ,). Bessie can score a point in the game by picking two of the dots and drawing a straight line between them; however, she is not allowed to draw a line if she has already drawn another line that is parallel to that line. Bessie would like to know her chances of winning, so she has asked you to help find the maximum score she can obtain. 游戏开始的时 候,FJ会给贝茜一块画着N ( <= N <= )个不重合的点的木板,其中第i个点 的横、纵坐标分别为X_i和Y_i (-, <= X_i <=,; -, <= Y_i <= ,)。 贝茜可以选两个点画一条过它们的直线,当且仅当平面上不存在与画出直线 平行的直线。游戏结束时贝茜的得分,就是她画出的直线的总条数。为了在游戏 中胜出,贝茜找到了你,希望你帮她计算一下最大可能得分。 输入输出格式
输入格式:
第1行: 输入1个正整数:N 第2..N+1行: 第i+1行用2个用空格隔开的整数X_i、Y_i,描述了点i的坐标 输出格式:
第1行: 输出1个整数,表示贝茜的最大得分,即她能画出的互不平行的线段数 输入输出样例
输入样例#: -
- 输出样例#: 说明
贝茜能画出以下4种斜率的直线:-,,/3以及1。 USACO2008 Feb T1
题面
对斜率进行排序,判重即可(解决精度误差)。
注意:特判一下直线与坐标轴垂直的情况。
#include<bits/stdc++.h>
#define DB double
using namespace std;
const int N=;
int n,l,ans;
int x[N],y[N];
DB c[N*N];
DB get(int a,int b)
{
return 1.0*(y[a]-y[b])/(x[a]-x[b]);
}
int main()
{
scanf("%d",&n);
for(int i=;i<=n;++i) scanf("%d%d",&x[i],&y[i]);
for(int i=;i<=n;++i)
for(int j=i+;j<=n;++j)
if(x[i]==x[j]) c[++l]=;
else if(y[i]==y[j]) c[++l]=1e7;
else c[++l]=get(i,j);
sort(c+,c+l+);
for(int i=;i<=l;++i)
if(fabs(c[i]-c[i-])>1e-) ans++;
printf("%d",ans+);
return ;
}
希望今年可以拿到省一,通过复旦的自招,加油
[USACO08FEB]连线游戏Game of Lines的更多相关文章
- bzoj1610 / P2665 [USACO08FEB]连线游戏Game of Lines
P2665 [USACO08FEB]连线游戏Game of Lines 第一次写快读没判负数....(捂脸) 暴力$O(n^2)$求斜率,排序判重. 注意垂直方向的直线要特判. end. #inclu ...
- 洛谷 P2665 [USACO08FEB]连线游戏Game of Lines
P2665 [USACO08FEB]连线游戏Game of Lines 题目背景 Farmer John最近发明了一个游戏,来考验自命不凡的贝茜. 题目描述 Farmer John has chall ...
- P2665 [USACO08FEB]连线游戏Game of Lines
本着dp的心情,结果是道水题STL set就行了 题意:看有多少种斜率(题在那里半天说多少直线(不平行的)),其实就是找斜率的种类 #include<cstdio> #include&l ...
- BZOJ_1610_[Usaco2008_Feb]_Line连线游戏_(计算几何基础+暴力)
描述 http://www.lydsy.com/JudgeOnline/problem.php?id=1610 给出n个点,问两两确定的直线中,斜率不同的共有多少条. 分析 暴力枚举直线,算出来斜率放 ...
- BZOJ1610: [Usaco2008 Feb]Line连线游戏
1610: [Usaco2008 Feb]Line连线游戏 Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 1301 Solved: 571[Submit ...
- BZOJ 1610: [Usaco2008 Feb]Line连线游戏
1610: [Usaco2008 Feb]Line连线游戏 Description Farmer John最近发明了一个游戏,来考验自命不凡的贝茜.游戏开始的时 候,FJ会给贝茜一块画着N (2 &l ...
- 1610: [Usaco2008 Feb]Line连线游戏
1610: [Usaco2008 Feb]Line连线游戏 Time Limit: 5 Sec Memory Limit: 64 MB Submit: 1396 Solved: 615 [Subm ...
- [bzoj1610][Usaco2008 Feb]Line连线游戏_暴力枚举
Line连线游戏 bzoj-1610 Usaco-2008 Feb 题目大意:Farmer John最近发明了一个游戏,来考验自命不凡的贝茜.游戏开始的时 候,FJ会给贝茜一块画着N (2 <= ...
- 【BZOJ】1610: [Usaco2008 Feb]Line连线游戏(几何)
http://www.lydsy.com/JudgeOnline/problem.php?id=1610 两种做法,一种计算几何,一种解析几何,但是计算几何的复杂度远远搞出解析集合(虽然精度最高) 计 ...
随机推荐
- 应用安全 - CMS - ThinkCMF - 漏洞汇总
ThinkCMF X1.6.0-X2.2.3任意内容包含漏洞 Date: 2019.10 类型: 任意文件写入导致远程代码执行 影响范围: ThinkCMF X1.6.0 ThinkCMF X2.1. ...
- 华南理工大学 “三七互娱杯” C HRY and Abaas
https://ac.nowcoder.com/acm/contest/874/C 题目大意是两人俄罗斯轮盘赌 n个位置 有m个子弹 已知哪些位置上有子弹 子弹打出 游戏结束 求第i次扣动扳机游戏才结 ...
- MySQL数据库生成数据库说明文档
在半年多前为一个MySQL数据库生成过数据库说明文档,今天要重新生成一份,但是发现完全不记得当时是怎么生成的,只能在网上搜索重来一遍,所以今天特意把这个过程记录一下. 一.安装 使用MySQL数据库表 ...
- 时间处理插件moment.js
monment.js插件 处理时间:http://momentjs.cn/
- babel的初步了解
前段时间开始研究ast,然后慢慢的顺便把babel都研究了,至于ast稍后的时间会写一篇介绍性博客专门介绍ast,本博客先介绍一下babel的基本知识点. 背景: 由于现在前端出现了很多非es5的语法 ...
- linux查看端口是否被占用
1.使用lsof lsof -i:端口号查看某个端口是否被占用 2.使用netstat 使用netstat -anp|grep 80
- Java httpClint实现文件上传
Maven依赖 <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId&g ...
- MySQL之Foreign_Key
MySQL之Foregin_Key 一\\一对多 一.员工表和部门表 dep emp 类似与我们将所有的代码都写在一个py文件内 确立标语表之间的关系 思路:一定要要换位思考问题(必须两方都考虑周全之 ...
- Mysql 服务器管理程序 mysqladmin
mysqladmin [oprions] command 选项 说明 create db_name ...
- 004-sed 命令使用
sed 命令使用 主要作用是用来将数据进行选取,替换,删除,新增的命令,与vim类似 选项: -n : 只显示经过sed处理的数据,打印到屏幕 -e: 运行多个条件同时运行 -i: 直接修改文件 -p ...