1100 斜率最大 

基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题

 收藏

 关注

平面上有N个点,任意2个点确定一条直线,求出所有这些直线中,斜率最大的那条直线所通过的两个点。

(点的编号为1-N,如果有多条直线斜率相等,则输出所有结果,按照点的X轴坐标排序,正序输出。数据中所有点的X轴坐标均不相等,且点坐标为随机。)

Input

  1. 1行,一个数NN为点的数量。(2 <= N <= 10000)
  2. 2 - N + 1行:具体N个点的坐标,X Y均为整数(-10^9 <= X,<= 10^9)

Output

  1. 每行2个数,中间用空格分隔。分别是起点编号和终点编号(起点的X轴坐标 < 终点的X轴坐标)

Input示例

  1. 5
  2. 1 2
  3. 6 8
  4. 4 4
  5. 5 4
  6. 2 3

Output示例

  1. 4 2

一次过,开心。

  1. #include <iostream>
  2. #include<bits/stdc++.h>
  3. using namespace std;
  4. typedef long long ll;
  5. struct point
  6. {
  7. int x,y;int id;
  8. bool operator<(point &p2)
  9. {
  10. if(x!=p2.x)return x<p2.x;
  11. else return y<p2.y;
  12. }
  13. } P[10005];
  14. queue<pair<int,int> >q;
  15. int main()
  16. {
  17. #ifndef ONLINE_JUDGE
  18. freopen("in.txt","r",stdin);
  19. #endif // ONLINE_JUDGE
  20. int n;
  21. scanf("%d",&n);
  22. for(int i=1;i<=n;i++)
  23. {
  24. scanf("%d%d",&P[i].x,&P[i].y);
  25. P[i].id=i;
  26. }
  27. sort(P+1,P+n+1);
  28. point tmp=P[1];int id=1;
  29. ll maxk1=0;ll maxk2=666;
  30. ll t1,t2;
  31. for(int i=2;i<=n;i++)
  32. {
  33. if(P[i].y<=tmp.y)tmp=P[i],id=P[i].id;
  34. else if(P[i].x!=tmp.x)
  35. {
  36. t1=P[i].y-tmp.y;
  37. t2=P[i].x-tmp.x;
  38. if(t1*maxk2>t2*maxk1)
  39. {
  40. while(!q.empty())q.pop();
  41. q.push(make_pair(id,P[i].id));
  42. maxk1=t1,maxk2=t2;
  43. }
  44. else if(t1*maxk2==t2*maxk1)
  45. {
  46. q.push(make_pair(id,P[i].id));
  47. }
  48. else tmp=P[i],id=P[i].id;
  49. }
  50. }
  51. while(!q.empty())
  52. {
  53. cout<<q.front().first<<" "<<q.front().second<<endl;
  54. q.pop();
  55. }
  56. return 0;
  57. }

51 Nod 1100 斜率最大的更多相关文章

  1. 51 Nod 1107 斜率小于0的连线数量 (转换为归并求逆序数或者直接树状数组,超级详细题解!!!)

    1107 斜率小于0的连线数量 基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题   二维平面上N个点之间共有C(n,2)条连线.求这C(n,2)条线中斜率小于0的线 ...

  2. 51 nod 1439 互质对(Moblus容斥)

    1439 互质对 题目来源: CodeForces 基准时间限制:2 秒 空间限制:131072 KB 分值: 160 难度:6级算法题 有n个数字,a[1],a[2],…,a[n].有一个集合,刚开 ...

  3. 51 nod 1495 中国好区间

    1495 中国好区间 基准时间限制:0.7 秒 空间限制:131072 KB 分值: 80 难度:5级算法题   阿尔法在玩一个游戏,阿尔法给出了一个长度为n的序列,他认为,一段好的区间,它的长度是& ...

  4. 51 nod 1427 文明 (并查集 + 树的直径)

    1427 文明 题目来源: CodeForces 基准时间限制:1.5 秒 空间限制:131072 KB 分值: 160 难度:6级算法题   安德鲁在玩一个叫“文明”的游戏.大妈正在帮助他. 这个游 ...

  5. 51 nod 1055 最长等差数列(dp)

    1055 最长等差数列 基准时间限制:2 秒 空间限制:262144 KB 分值: 80 难度:5级算法题 N个不同的正整数,找出由这些数组成的最长的等差数列.     例如:1 3 5 6 8 9 ...

  6. 51 nod 1421 最大MOD值

    1421 最大MOD值 题目来源: CodeForces 基准时间限制:1 秒 空间限制:131072 KB 分值: 80 难度:5级算法题 有一个a数组,里面有n个整数.现在要从中找到两个数字(可以 ...

  7. 51 nod 1681 公共祖先 (主席树+dfs序)

    1681 公共祖先 基准时间限制:1 秒 空间限制:131072 KB 分值: 80 难度:5级算法题   有一个庞大的家族,共n人.已知这n个人的祖辈关系正好形成树形结构(即父亲向儿子连边). 在另 ...

  8. 51 nod 1766 树上的最远点对(线段树+lca)

    1766 树上的最远点对 基准时间限制:3 秒 空间限制:524288 KB 分值: 80 难度:5级算法题   n个点被n-1条边连接成了一颗树,给出a~b和c~d两个区间,表示点的标号请你求出两个 ...

  9. 51 nod 1405 树的距离之和

    1405 树的距离之和 基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题   给定一棵无根树,假设它有n个节点,节点编号从1到n, 求任意两点之间的距离(最短路径)之 ...

随机推荐

  1. python *****【异常处理】*****

    try: val = input('请输入数字:') num = int(val) except Exception as e: print('操作异常') # import requests # # ...

  2. http请求之of_ordering_json

    //Public function of_ordering_json (string as_json,ref string as_jsons[]) returns integer //string a ...

  3. Spring Boot源码分析-配置文件加载原理

    在Spring Boot源码分析-启动过程中我们进行了启动源码的分析,大致了解了整个Spring Boot的启动过程,具体细节这里不再赘述,感兴趣的同学可以自行阅读.今天让我们继续阅读源码,了解配置文 ...

  4. Oracle数据库中的变量

    Oracle数据库中的变量 来源:https://blog.csdn.net/wahaa591/article/details/46772769 1.define(即host变量) define va ...

  5. global.css

    global.css /* 页面元素初始化和常用样式定义-start */ /*======== 全局 ========*/ body, div, dl, dt, dd, ul, ol, li, h1 ...

  6. css基础(代码)

    display: block; /*元素分为三大类,设置元素的显示方式}                                         行内 inlineli{            ...

  7. vue报错Maximum call stack size exceeded at abort (webpack-internal:///./node_modules/_vue-router@3.1.3@vue-router/dist/vue-router.esm.js:2079)

    报错原因: import cellDetail from '@/components/common/dialog/cellDetail.vue'; 解决方法: import celldetail fr ...

  8. JSP中的普通路径写法

    <% String path = request.getContextPath();     String basePath = request.getScheme()+"://&qu ...

  9. python 利用pyttsx3文字转语音

    # -*- coding: utf-8 -*- import pyttsx3 f = open("all.txt",'r') line = f.readline() engine ...

  10. Java反射【四、成员变量的反射和构造的反射】

    获取一个类下所有字段信息 Field[] fs = c.getFields(); 获取所有字段(public) Field[] fs = c.getDeclaredFields(); 获取所有声明字段 ...