51 nod 1100 斜率最大

6人阅读 评论(0) 收藏 举报
分类:
基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题
 收藏
 关注
平面上有N个点,任意2个点确定一条直线,求出所有这些直线中,斜率最大的那条直线所通过的两个点。
(点的编号为1-N,如果有多条直线斜率相等,则输出所有结果,按照点的X轴坐标排序,正序输出。数据中所有点的X轴坐标均不相等,且点坐标为随机。)
Input
第1行,一个数N,N为点的数量。(2 <= N <= 10000)
第2 - N + 1行:具体N个点的坐标,X Y均为整数(-10^9 <= X,Y <= 10^9)
Output
每行2个数,中间用空格分隔。分别是起点编号和终点编号(起点的X轴坐标 < 终点的X轴坐标)
Input示例
5
1 2
6 8
4 4
5 4
2 3
Output示例
4 2

我的思路是:把所有横坐标不相同的两个点的斜率都求一下,因为数据量不是很大,所以能过...

#include <iostream>
#include <algorithm>
using namespace std;
struct pot
{
	int x,y;
}a[10005];
int main ()
{
	int n,i,j;
	cin>>n;
	for(i=1; i<=n; ++i)
	{
		cin>>a[i].x>>a[i].y;
	}
	double k=-3e9;
	int cnt=1,cnt1=2;
	for(i=1; i<=n; ++i)
	{
	    double c;
		for(j=i+1; j<=n; ++j)
		{
			if(a[j].x==a[i].x)
			continue;
			c=(a[j].y-a[i].y)/(a[j].x-a[i].x);
			if(k<c)
			{
				k=c;
				if(a[i].x<a[j].x)
				{
					cnt=i; cnt1=j;
			    }
				else
				{
					cnt1=i; cnt=j;
				}
			}
		}
	}
	cout<<cnt<<" "<<cnt1<<endl;
	return 0;
}

查看评论

Servlet和ThreadLocal的测试

Servlet和ThreadLocal的测试很早以前就对Servlet中的变量生命周期不清楚最近用hibernate又涉及到ThreadLocal的使用做个测试看看到底它们的变量有效范围public ...
  • icecloud
  • icecloud
  • 2004-05-25 10:30:00
  • 3620

51NOD 1100 斜率最大

传送门平面上有N个点,任意2个点确定一条直线,求出所有这些直线中,斜率最大的那条直线所通过的两个点。 (点的编号为1-N,如果有多条直线斜率相等,则输出所有结果,按照点的X轴坐标排序,正序输出。数据...
  • qingshui23
  • qingshui23
  • 2016-07-06 20:37:51
  • 1597

51nod 1100 斜率最大

平面上有N个点,任意2个点确定一条直线,求出所有这些直线中,斜率最大的那条直线所通过的两个点。 (点的编号为1-N,如果有多条直线斜率相等,则输出所有结果,按照点的X轴坐标排序,正序输出。数据中...
  • h1021456873
  • h1021456873
  • 2015-11-18 18:45:49
  • 542

51nod1100斜率最大

51nod1100斜率最大按照x坐标从小到大排序 斜率最大的肯定是相邻的两个坐标#include #include #include #include #include #include #incl...
  • CoderFly
  • CoderFly
  • 2016-09-13 22:55:50
  • 129

51Nod-1100-斜率最大

ACM模版描述题解因为斜率最大的两点一定是x轴坐标相邻的两点。 所以,先进行排序,将斜率最大的线存起来,最后对线进行按x轴坐标排序,正序输出对应编号即可。代码#include #include ...
  • f_zyj
  • f_zyj
  • 2016-08-07 02:46:02
  • 375

51nod oj 1100 斜率最大

1100 斜率最大 基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题  收藏  关注 平面上有N个点,任意2个点确...
  • leibniz_zhang
  • leibniz_zhang
  • 2016-09-14 22:19:43
  • 218

51nod 1062 序列中最大的数

题目链接:51nod.com/onlineJudge/questionCode.html#!problemId=1062 题目: 有这样一个序列a: a[0] = 0 a[1] = 1 ...
  • zchahaha
  • zchahaha
  • 2016-06-10 09:40:53
  • 637

51nod 1100 斜率最大

平面上有N个点,任意2个点确定一条直线,求出所有这些直线中,斜率最大的那条直线所通过的两个点。 (点的编号为1-N,如果有多条直线斜率相等,则输出所有结果,按照点的X轴坐标排序,正序输出。数据中所有...
  • ZoneForZero
  • ZoneForZero
  • 2017-08-05 00:16:44
  • 210

51Nod 1100 斜率最大

平面上有N个点,任意2个点确定一条直线,求出所有这些直线中,斜率最大的那条直线所通过的两个点。 (点的编号为1-N,如果有多条直线斜率相等,则输出所有结果,按照点的X轴坐标排序,正序输出。数据中所有点...
  • Hermann_weyl
  • Hermann_weyl
  • 2016-12-11 22:30:49
  • 186

1100 斜率最大(找规律)

1100 斜率最大 基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题  收藏  关注 平面上有N个点,任意2个点确...
  • update7
  • update7
  • 2017-07-10 19:58:11
  • 36306
    个人资料
    持之以恒
    等级:
    访问量: 1万+
    积分: 1408
    排名: 3万+
    最新评论