1207: C.LU的困惑
2015-05-29 14:41
141 查看
题目描述
Master LU 非常喜欢数学,现在有个问题:在二维空间上一共有n个点,LU每连接两个点,就会确定一条直线,对应有一个斜率。现在LU把平面内所有点中任意两点连线,得到的斜率放入一个集合中(若斜率不存在则不计入集合),他想知道这个集合中有多少个元素。输入
第一行是一个整数T,代表T组测试数据每组数据第一行是一个整数n,代表点的数量。2<n<1000
接下来n行,每行两个整数,0<x<10000,0<y<10000,代表点的坐标
输出
输出斜率集合中有多少个元素样例输入
24
1 1
2 2
3 3
3 6
4
1 1
2 2
2 0
3 1
样例输出
3 3#include<iostream> #include<cstdio> #include<algorithm> using namespace std; struct point { double x,y; }; int main() { int T,i,j,n,p; cin>>T; double k; while(T--) { double X,Y; double b[100000]={0}; int w=0,t=0; point a[10000]={0}; cin>>n; for(i=0;i<n;i++) cin>>a[i].x>>a[i].y; for(i=0;i<n;i++) for(j=i+1;j<n;j++) { X=a[i].x-a[j].x; Y=a[i].y-a[j].y; if(X==0) continue; k=Y/X; b[w++]=k; } sort(b,b+w); t=unique(b,b+w)-b; cout<<t<<endl; } }
相关文章推荐
- 《Entity Framework 6 Recipes》中文翻译系列 (31) ------ 第六章 继承与建模高级应用之自引用关联
- GNS3 模拟网络路由交换远程登录
- 使用国内镜像在线更新AndroidSDK和Library
- SQL Server2008中CROSS APPLY的应用范例(一)-将多个不同值更新到不同条件匹配的记录中
- SwitchButton开关按钮的多种实现方式
- Storm集群安装步骤
- GitHub 优秀的 Android 开源项目
- 小心C语言localtime和asctime时间函数陷阱
- Git的图形化工具使用教程
- IOS 音频录制与播放简单演示
- input type=file 标签禁止让用户手动输入
- Eclipse中使用Git插件(一)
- ST emWin 调试
- Tomcat版本与Servlet、JSP等版本的支持关系
- unresolved external symbol __chkstk
- SQL Server 2008“备份集中的数据库备份与现有的数据库不同”解决方法
- 第13周项目—阅读3
- 计算素数
- Andriod程序如何在安卓市场发布
- python类库26[读写Excel]