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 ...
随机推荐
- RTX二次开发(一)(基于ASP.NET)
腾讯通RTX是(Real Time eXpert)是腾讯公司推出的企业级实时通信平台,致力于帮助企业提高运作效率.降低沟通成本.拓展商业机会,是一种高度可管理.低成本.易部署的IT平台.RTX集成了丰 ...
- [译]Mongoose指南 - 中间件
中间件是一些函数, 当document发生init, validate, save和remove方法的时候中间件发生. 中间件都是document级别的不是model级别的. 下面讲讲两种中间件pre ...
- js改变HTML元素的值
js改变HTML元素的值(常用,备忘) <!DOCTYPE html> <html> <body> <h1>我的第一段 JavaScript</h ...
- jQuery Validate 表单验证
在做网页表单时时常需要在客户端对表单填写的数据进行验证一番才能提交,我们可以通过自己编写JavasScript代码来验证,但是有时数据量过多时就会有些难度了.基于jQuery的jquery.valid ...
- HDU 5071 Chat(2014鞍山赛区现场赛B题)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5071 解题报告:一个管理聊天窗口的程序,一共有八种操作,然后要注意的就是Top操作只是把编号为u的窗口 ...
- git commit --amend
任何时候,你都有可能需要撤消刚才所做的某些操作.接下来,我们会介绍一些基本的撤消操作相关的命令.请注意,有些撤销操作是不可逆的,所以请务必谨慎小心,一旦失误,就有可能丢失部分工作成果. 有时候我们提交 ...
- Java 反射的应用
在学习反射之前,让我们先了解“类(Class)”.“方法”.“属性”.“类”都是名词,那么相应的在Java中会有这样一些特殊的类:“方法类(Method类)”.“属性类(Field类)”.“构造器类( ...
- 解压版MySQL安装说明
一.复制my.ini到MySQL解压的目录 例如:E:\MySQL 二.修改my.ini第39~40行 basedir = "E:\\MySQL" datadir = " ...
- sqlmap笔记本
/* 转载请注明出处 ID:珍惜少年时 */ 相关命令--current-user #当前数据库用户--privileges #查看当前数据库权限--dbms=mssql #指定数据库的类型--os- ...
- hiho #1325 : 平衡树·Treap
#1325 : 平衡树·Treap 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Ho:小Hi,我发现我们以前讲过的两个数据结构特别相似. 小Hi:你说的是哪两个啊? ...