oj--点排序

#include<cstdio>
#include<algorithm>
#include<cmath>
using namespace std;
struct Point{
    int x,y;
    double d;
    double caldis(Point a){
        return sqrt((a.x-x)*(a.x-x)+(a.y-y)*(a.y-y));
    }
    bool operator < (const Point &a) const{
        if(d!=a.d)
            return d<a.d;
        else if(x!=a.x)
            return x<a.x;
        else return y<a.y;
    }
}point[105];

int main(){
    Point ori;
    scanf("%d %d",&ori.x,&ori.y);
    int n;
    scanf("%d",&n);
    int idx=0;
    int t=n;
    while(t--){
        scanf("%d %d",&point[idx].x,&point[idx].y);
        point[idx].d=point[idx].caldis(ori);
        idx++;
    }
    sort(point,point+n);
    for(int i=0;i<n;i++){
        if(i!=0)
            printf(", ");
        printf("(%d,%d)",point[i].x,point[i].y);
    }
    printf("\n");
    return 0;
} 
时间: 2024-10-19 11:16:17

oj--点排序的相关文章

华为OJ:分段排序

题目有点绕,一个是要二分,用三个字符串,存前,中,后三个,前,后部分都降序排序,然后后半部分再反转一下,讲三部分合起来就好了. import java.util.Scanner; public class dividesort { public static void sort(StringBuffer s){ for(int i=0;i<s.length();i++){ for(int j=i;j<s.length();j++){ if(s.charAt(i)>s.charAt(j))

华为OJ—字符串排序

http://career-oj.huawei.com/exam/ShowProblemInfo?id=2168 编写一个程序,将输入字符串中的字符按如下规则排序. 规则1:英文字母从A到Z排列,不区分大小写. 如,输入:Type 输出:epTy 规则2:同一个英文字母的大小写同时存在时,按照输入顺序排列. 如,输入:BabA 输出:aABb 规则3:非英文字母的其它字符保持原来的位置. 如,输入:By?e 输出:Be?y 样例: 输入: A Famous Saying: Much Ado Ab

华为OJ 字符串排序

写完之后,总觉得有点复杂.. 要求: 编写一个程序,将输入字符串中的字符按如下规则排序. 规则1:英文字母从A到Z排列,不区分大小写. 如,输入:Type输出:epTy 规则2:同一个英文字母的大小写同时存在时,按照输入顺序排列. 如,输入:BabA输出:aABb 规则3:非英文字母的其它字符保持原来的位置. 如,输入:By?e输出:Be?y 样例: 输入: A Famous Saying: Much Ado About Nothing(2012/8). 输出: A aaAAbc dFgghh:

oj教程--排序算法(Java)

import java.util.ArrayList; import java.util.List; /** * 排序算法主类 * * @author eric */ class SortArray { /* * [插入排序] * 基本思想: 在要排序的一组数中,假设前面(n-1) [n>=2] 个数已经是排好顺序的, * 现在要把第n个数插到前面的有序数中,使得这n个数也是排好顺序的, 如此反复循环,直到全部排好顺序. */ public void insertSort(int[] arr)

spring中controller

提示:原网站已由百度转码,以便在移动设备上查看. 第七城市 (Portal 开发读书笔记)Spring Portlet MVC 测试Controller 2012-04-28 16:32:44 - - 点击数: 175 测试Spring Portlet MVC 中的Controller有两种方法,一种是用mock对象,一种是用TestContext框架 测试1:用mock 对象测试Controller.我们把所有Controller用到或者依赖的对象全部mock掉. public class A

华为OJ—火车进站(栈,字典排序)

给定一个正整数N代表火车数量,0<N<10,接下来输入火车入站的序列,一共N辆火车,每辆火车以数字1-9编号.要求以字典序排序输出火车出站的序列号.其实也就是输出所有可能的出栈序列. 样例输入: 3 1 2 3 样例输出: 1 2 31 3 22 1 32 3 13 2 1 解答: 其实核心就是一个栈,对于第K个数,在第K个数进栈之前,前面的 K-1 个数要么全部出去了,要么都在栈里面,要么部分在栈里面部分出去了.那么可以假想,在第K个数入栈之前,依次从栈里面出去 0个.1个.2个--栈.si

nyist oj 540 奇怪的排序(水题)

奇怪的排序 时间限制:1000 ms  |  内存限制:65535 KB 难度:1 描述 最近,Dr. Kong 新设计一个机器人Bill.这台机器人很聪明,会做许多事情.惟独对自然数的理解与人类不一样,它是从右往左读数.比如,它看到123时,会理解成321.让它比较23与15哪一个大,它说15大.原因是它的大脑会以为是32与51在进行比较.再比如让它比较29与30,它说29大. 给定Bill两个自然数A和B,让它将 [A,B] 区间中的所有数按从小到大排序出来.你会认为它如何排序? 输入 第一

【华为OJ】【024-字符串排序】

[华为OJ][算法总篇章] [华为OJ][024-字符串排序] [工程下载] 题目描述 编写一个程序,将输入字符串中的字符按如下规则排序. 规则1:英文字母从A到Z排列,不区分大小写.如,输入:Type 输出:epTy 规则2:同一个英文字母的大小写同时存在时,按照输入顺序排列.如,输入:BabA 输出:aABb 规则3:非英文字母的其它字符保持原来的位置.如,输入:By?e 输出:Be?y 样例: 输入: A Famous Saying: Much Ado About Nothing(2012

【华为OJ】【046-成绩排序】

[华为OJ][算法总篇章] [华为OJ][046-成绩排序] [工程下载] 题目描述 查找和排序 题目:输入任意(用户,成绩)序列,可以获得成绩从高到低或从低到高的排列,相同成绩 都按先录入排列在前的规则处理. 例示: jack 70 peter 96 Tom 70 smith 67 从高到低 成绩 peter 96 jack 70 Tom 70 smith 67 从低到高 smith 67 Tom 70 jack 70 peter 96 输入描述 输入多行,先输入要排序的人的个数,然后分别输入

九度oj 题目1023:EXCEL排序

题目1023:EXCEL排序 时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:20699 解决:4649 题目描述:     Excel可以对一组纪录按任意指定列排序.现请你编写程序实现类似功能. 对每个测试用例,首先输出1行“Case i:”,其中 i 是测试用例的编号(从1开始).随后在 N 行中输出按要求排序后的结果,即:当 C=1 时,按学号递增排序:当 C=2时,按姓名的非递减字典序排序:当 C=3 时,按成绩的非递减排序.当若干学生具有相同姓名或者相同成绩时,则按他们的学号