| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2224 人关注过本帖
标题:寻找平面上的极大点
取消只看楼主 加入收藏
李正祥
Rank: 1
等 级:新手上路
帖 子:15
专家分:3
注 册:2013-4-15
结帖率:0
收藏
 问题点数:0 回复次数:2 
寻找平面上的极大点
网上提交上去总是错误 跪求指点
描述
在一个平面上,如果有两个点(x,y),(a,b),如果说(x,y)支配了(a,b),这是指x>=a,y>=b;
用图形来看就是(a,b)坐落在以(x,y)为右上角的一个无限的区域内。
给定n个点的集合,一定存在若干个点,它们不会被集合中的任何一点所支配,这些点叫做极大值点。
编程找出所有的极大点,按照x坐标由小到大,输出极大点的坐标。
本题规定:n不超过100,并且不考虑点的坐标为负数的情况。
输入
输入包括两行,第一行是正整数n,表示是点数,第二行包含n个点的坐标,坐标值都是整数,坐标范围从0到100,输入数据中不存在坐标相同的点。
输出
按x轴坐标最小到大的顺序输出所有极大点。
输出格式为:(x1,y1),(x2,y2),...(xk,yk)
注意:输出的每个点之间有","分隔,最后一个点之后没有",",少输出和多输出都会被判错
样例输入
5
1 2 2 2 3 1 2 3 1 4

这是我的代码!!网上提交上去总是错误 跪求指点
#include<iostream>
using namespace std;

struct point
{
 int x;
 int y;
}p[200];

int main()
{
     int n;
     int i=0;
     int j=0;
     int count=0;
     struct point temp;
     cin>>n;

     for(i=0;i<n;i++)
      cin>>p[i].x>>p[i].y;//输入
    int teg = 0;
    for(i = n - 1; i >= 1; i--){
        teg = 0;
        for(j = 0; j < i; j++){
            if(p[i].x < p[j+1].x){
                temp = p[i];
                p[i] = p[j+1];
                p[j+1] = temp;
                teg = 1;
            }
        }
        if(teg == 0)
            break;
    }
     for(i=0;i<n;i++)
     {
          int flag = 1;/*设置一个标志flag,若该点被其它任意一点支配,则在以下循环中被置为false*/
          for(j=0;j<n;j++)
          {
               if(j==i)//避免该点与自己做比较
            continue;//跳过本次循环
               if(p[i].x<=p[j].x && p[i].y<=p[j].y)
               {
                flag=0;
                break;/*如果该点被其它任意一点所支配,则立即跳出循环,并且将flag置为false*/
               }
        }
        if(flag)/*如果循环结束,且flag仍然为true,则说明该点是极大点,应该输出该点*/
        {
               count++;
               if(count>1)//用于正确输出逗号
            cout<<',';
               cout<<"("<<p[i].x<<","<<p[i].y<<")";
       }
     }   
     cout<<endl;
 
    return 0;
}
搜索更多相关主题的帖子: 正整数 平面 网上 
2013-12-30 14:39
李正祥
Rank: 1
等 级:新手上路
帖 子:15
专家分:3
注 册:2013-4-15
收藏
得分:0 
回复 2楼 azzbcc
冒泡排序,一起都不交换说明已经排好序了,跳出循环不需要排序!!!
2013-12-30 18:18
李正祥
Rank: 1
等 级:新手上路
帖 子:15
专家分:3
注 册:2013-4-15
收藏
得分:0 
回复 4楼 beyondyf
谢谢!!!
2014-01-11 21:22
快速回复:寻找平面上的极大点
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.045538 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved