A:点排序-poj

A:点排序

总时间限制: 
1000ms

内存限制: 
65536kB
描述

给定一个点的坐标(x, y),在输入的n个点中,依次计算这些点到指定点的距离,并按照距离进行从小到大排序,并且输出点的坐标(如果距离相同,将x轴坐标比较小的点排到前面, 如果距离相等且x轴坐标也相同,则将y轴坐标较小的点排到前面)。坐标为int类型,范围为-1000到1000。n 为1到100之间正整数。

输入
3行,第一行为指定点的坐标x, y。x, y之间用空格隔开。第二行为一个整数n。第三行为n个点的坐标,彼此之间用空格间隔。
输出
按照距离进行从小到大排序,输出点的坐标(如果距离相同,将x轴坐标比较小的点排到前面,如果距离相等且x轴坐标也相同,则将y轴坐标较小的点排到前面)。注意输出中同一个点内部括号中无空格,点和点之间逗号后面存在空格。
样例输入
0 0
5
1 0 0 1 1 1 5 2 4 0
样例输出
(0,1), (1,0), (1,1), (4,0), (5,2)代码:
#include<iostream>
#include<stdio.h>
#include<math.h>
using namespace std;
struct point
{
    int pos_x;
    int pos_y;
    int distance;
};
int main()
{
    int pos_x1,pos_y1;
    struct point pos[101];
    int n,i,j;
    cin>>pos_x1>>pos_y1;
    cin>>n;
    for(i=0;i<n;i++)
    {
        cin>>pos[i].pos_x>>pos[i].pos_y;
        pos[i].distance=0;
    }
    for(j=0;j<n;j++)
    {
        pos[j].distance=sqrt((pos[j].pos_x-pos_x1)*(pos[j].pos_x-pos_x1)+(pos[j].pos_y-pos_y1)*(pos[j].pos_y-pos_y1));
    }
    struct point temp;
    for(i=0;i<n-1;i++)
    {
        for(j=0;j<n-1-i;j++)
        {
            if(pos[j].distance>pos[j+1].distance)
            {
                temp=pos[j];
                pos[j]=pos[j+1];
                pos[j+1]=temp;
            }
        }
    }
    for(i=0;i<n-1;i++)
    {
        for(j=0;j<n-1-i;j++)
        {
            if((pos[j].distance==pos[j+1].distance)&&(pos[j].pos_x>pos[j+1].pos_x))
            {
                temp=pos[j];
                pos[j]=pos[j+1];
                pos[j+1]=temp;
            }
            else
                if((pos[j].distance==pos[j+1].distance)&&(pos[j].pos_x==pos[j+1].pos_x)&&(pos[j].pos_y>pos[j+1].pos_y))
                {
                    temp=pos[j];
                    pos[j]=pos[j+1];
                    pos[j+1]=temp;
            }
        }
    }
    for(i=0;i<n;i++)
    {
        printf("(%d,%d) ",pos[i].pos_x,pos[i].pos_y);
    }
    cout<<endl;
    return 0;
}
 
时间: 2024-11-07 21:12:54

A:点排序-poj的相关文章

拓扑排序 POJ 2367

今天网易的笔试,妹的,算法题没能A掉,虽然按照思路写了出来,但是尼玛好歹给个测试用例的格式呀,吐槽一下网易的笔试出的太烂了. 就一道算法题,比较石子重量,个人以为解法应该是拓扑排序. 就去POJ找了道拓扑排序的题:POJ2367 直接上代码吧: #include<stdio.h> #include<string> #define clr(x) memset(x,0,sizeof(x)) int g[101][102]; int indegree[102]; int res[102]

图论之拓扑排序 poj 2367 Genealogical tree

题目链接 http://poj.org/problem?id=2367 题意就是给定一系列关系,按这些关系拓扑排序. #include<cstdio> #include<cstring> #include<queue> #include<vector> #include<algorithm> using namespace std; const int maxn=200; int ans; int n; int in[maxn]; //记录入度

拓扑排序 POJ 1049 Sorting It All Out

题目传送门 1 /* 2 拓扑排序裸题:有三种情况: 3 1. 输入时发现与之前的矛盾,Inconsistency 4 2. 拓扑排序后,没有n个点(先判断cnt,即使一些点没有边连通,也应该是n,此时错误是有环): 5 flag = -1 表示不确定:return 2 表示拓扑序唯一 6 3. 其他情况都是 Sorted sequence cannot be determined. 7 8 */ 9 #include <cstdio> 10 #include <algorithm>

排序 POJ 1828

题目: 题目链接 给出N个二维点,要求所有不受控制点的个数,对于<x0,y0> , 如果存在点<x,y> 使得 x>=x0&& y>=y0,这就称为<x0,y0>受控于<x,y>. N<5*104; multi_case 解法: 这个题目还算不错,,只允许Nlog(N)的排序预处理和N的遍历.,,求解的时候,最开始想到的是二分,,结果超时..看样子case还是挺强的~~ 先将所有点按照 x_y进行排序.就是先按 x 递增,

简单几何(极角排序) POJ 2007 Scrambled Polygon

题目传送门 题意:裸的对原点的极角排序,凸包貌似不行. /************************************************ * Author :Running_Time * Created Time :2015/11/3 星期二 14:46:47 * File Name :POJ_2007.cpp ************************************************/ #include <cstdio> #include <al

POJ题目分类推荐 (很好很有层次感)

著名题单,最初来源不详.直接来源:http://blog.csdn.net/a1dark/article/details/11714009 OJ上的一些水题(可用来练手和增加自信) (POJ 3299,POJ 2159,POJ 2739,POJ 1083,POJ 2262,POJ 1503,POJ 3006,POJ 2255,POJ 3094) 初期: 一.基本算法: 枚举. (POJ 1753,POJ 2965) 贪心(POJ 1328,POJ 2109,POJ 2586) 递归和分治法. 递

图论常用算法之一 POJ图论题集【转载】

POJ图论分类[转] 一个很不错的图论分类,非常感谢原版的作者!!!在这里分享给大家,爱好图论的ACMer不寂寞了... (很抱歉没有找到此题集整理的原创作者,感谢知情的朋友给个原创链接) POJ:http://poj.org/ 1062* 昂贵的聘礼 枚举等级限制+dijkstra 1087* A Plug for UNIX 2分匹配 1094 Sorting It All Out floyd 或 拓扑 1112* Team Them Up! 2分图染色+DP 1125 Stockbroker

POJ 刷题指南

OJ上的一些水题(可用来练手和增加自信) (POJ 3299,POJ 2159,POJ 2739,POJ 1083,POJ 2262,POJ 1503,POJ 3006,POJ 2255,POJ 3094) 初期: 一.基本算法: 枚举. (POJ 1753,POJ 2965) 贪心(POJ 1328,POJ 2109,POJ 2586) 递归和分治法. 递推. 构造法.(POJ 3295) 模拟法.(POJ 1068,POJ 2632,POJ 1573,POJ 2993,POJ 2996) 二

整理——各种模板

便于考前用... 平时先囤着... hash                                                  ACM1996总决赛-10-20-30 extend euclid                                      poj 1061-青蛙的约会 拓扑排序                                              poj 1270-Following Orders dsu