Enum:Game of Lines(POJ 3668)
题目大意:给定一些点集,要你找两点之间的连线不平行的有多少条
数据量比较少,直接暴力枚举,然后放到set查找即可
#include <iostream>
#include <functional>
#include <algorithm>
#include <set> using namespace std; static struct _p_set
{
long double x, y;
}points[];
set<long double>lines; int gcd(const int, const int); int main(void)
{
int point_sum, cut;
long double tmp;
//pair<int,int>tmp;
while (~scanf("%d", &point_sum))
{
lines.clear();
for (int i = ; i < point_sum; i++)
scanf("%lf%lf", &points[i].x, &points[i].y);
for (int i = ; i < point_sum; i++)
{
for (int j = i + ; j < point_sum; j++)
{
if ((points[i].x - points[j].x) != )
tmp = (points[i].y - points[j].y) / (points[i].x - points[j].x);
else
tmp = (long double)INT_MAX;
lines.insert(tmp);
}
}
printf("%d\n", lines.size());
} return EXIT_SUCCESS;
}
在讨论版那里还找到了一种很新奇的做法,可以无视除数是0和精度的问题
#include <iostream>
#include <functional>
#include <algorithm>
#include <set> using namespace std; static struct _p_set
{
int x, y;
}points[];
set<pair<int,int>>lines; int gcd(const int, const int); int main(void)
{
int point_sum, cut;
pair<int,int>tmp;
while (~scanf("%d", &point_sum))
{
lines.clear();
for (int i = ; i < point_sum; i++)
scanf("%d%d", &points[i].x, &points[i].y);
for (int i = ; i < point_sum; i++)
{
for (int j = i + ; j < point_sum; j++)
{
cut = gcd(points[i].y - points[j].y, points[i].x - points[j].x);
tmp.first = (points[i].y - points[j].y) / cut;
tmp.second = (points[i].x - points[j].x) / cut;
lines.insert(tmp);
}
}
printf("%d\n", lines.size());
}
return EXIT_SUCCESS;
} int gcd(const int a, const int b)
{
if (b == )
return a;
return gcd(b, a%b);
}
其实时间差不多
Enum:Game of Lines(POJ 3668)的更多相关文章
- POJ 3668 Game of Lines (暴力,判重)
题意:给定 n 个点,每个点都可以和另一个点相连,问你共有多少种不同斜率的直线. 析:那就直接暴力好了,反正数也不大,用set判重就好,注意斜率不存在的情况. 代码如下: #include <c ...
- Divide and conquer:Telephone Lines(POJ 3662)
电话线 题目大意:一堆电话线要你接,现在有N个接口,总线已经在1端,要你想办法接到N端去,电话公司发好心免费送你几段不用拉网线,剩下的费用等于剩余最长电话线的长度,要你求出最小的费用. 这一看又是一个 ...
- Intersecting Lines - POJ 1269(判断平面上两条直线的关系)
分析:有三种关系,共线,平行,还有相交,共线和平行都可以使用叉积来进行判断(其实和斜率一样),相交需要解方程....在纸上比划比划就出来了.... 代码如下: ================== ...
- Intersecting Lines POJ 1269
题目大意:给出两条直线,每个直线上的两点,求这两条直线的位置关系:共线,平行,或相交,相交输出交点. 题目思路:主要在于求交点 F0(X)=a0x+b0y+c0==0; F1(X)=a1x+b1y+c ...
- Telephone Lines POJ - 3662 (二分+spfa)
Farmer John wants to set up a telephone line at his farm. Unfortunately, the phone company is uncoop ...
- 判断线段之间的关系(D - Intersecting Lines POJ - 1269 )
题目链接:https://vjudge.net/contest/276358#problem/D 题目大意:每一次给你两条直线,然后问你这两条直线的关系(平行,共线,相交(输出交点)). 具体思路:先 ...
- Enum:EXTENDED LIGHTS OUT(POJ 1222)
亮灯 题目大意:有一个5*6的灯组,按一盏灯会让其他上下左右4栈和他自己灯变为原来相反的状态,要怎么按才会把所有的灯都按灭? 3279翻版题目,不多说,另外这一题还可以用其他方法,比如DFS,BFS, ...
- Enum:Backward Digit Sums(POJ 3187)
反过来推 题目大意:就是农夫和这只牛又杠上了(怎么老是牛啊,能换点花样吗),给出一行数(从1到N),按杨辉三角的形式叠加到最后,可以得到一个数,现在反过来问你,如果我给你这个数,你找出一开始的序列(可 ...
- POJ 3668 枚举?
枚举两点,算一下斜率 sort一遍 判个重 输出解 25行 搞定- //By SiriusRen #include <cmath> #include <cstdio> #inc ...
随机推荐
- 如何在服务器上搭建git服务器
参考文章: http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/00137583770 ...
- socket编程报异常java.io.EOFException
一个客户端连接服务器的小程序,服务器端可以正常读取客户端发来的数据 但是当客户端关闭时,服务端也关闭了,并且抛出如下的异常: java.io.EOFException at java.io.DataI ...
- 移动WebApp利用Chrome浏览器进行调试
详细的请看这个(HBuilder是我长期使用,而且值得支持的国内前端开发编辑器) http://ask.dcloud.net.cn/article/151 http://ask.dcloud.net. ...
- [设计模式] javascript 之 桥接模式
桥接模式说明 定义:分离抽象化与实现化,使之可以自由独立的变化: 说明:由于软件环境需求原因,使得类型抽象具有多种实现以自身变化定义等情况,这使得我们要分离抽象实现与具体实现,使得抽象化与实现化解耦, ...
- AngularJS API之toJson 对象转为JSON
toJson()能把对象序列化为json 方法讲解 这个方法最多支持2个参数: angular.toJson(obj, pretty); obj 是想要转换的对象, pretty 可以调节格式化的样式 ...
- vector族函数
本文原创,转载请注明出处,本人Q1273314690 vector(mode = "logical", length = 0) as.vector(x, mode = " ...
- mac安装mongodb
一,安装方法1 ,下载mongodb 1,官网下载mongodb程序 https://www.mongodb.org/downloads#production 2,解压后启动mongodb服务 下载 ...
- VS2008上借助VA来提示QT API
1.打开VS,工具-->选项-->项目和解决方案-->VC++目录,在右侧下拉框中选择-->包含文件,添加QT的include目录 2. 打开VA配置页,Projects--& ...
- js跳转页面
<script type="text/javascript"> 方法一: location.href = 'http://www.baidu.com'; 方法二: l ...
- oracle删除表以及清理表空间
若要彻底删除表,则使用语句:drop table <table_name> purge; 清除回收站里的信息 清除指定表:purge table <table_name>; 清 ...