结构体 ---排序,搜索

排序

注意sort数组时第二个参数是指向目标终点的后面一位


题目来自于洛谷OJ P1056 排座椅

#include <bits/stdc++.h>
using namespace std;

struct A
{
    //nd为隔开的同学对数,nh为行(列)序号,构造时会初始化为0
    int nd;
    int nh;
};

bool cmpd(A x,A y)
{
    return x.nd>y.nd;
}

bool cmph(A x,A y)
{
    return x.nh<y.nh;
}

int main()
{
    int m,n,k,l,d;
    cin>>m>>n>>k>>l>>d;
    A ks[1005],ls[1005];
    for(int i = 1 ; i <= d ; i++)
    {
        int x1,y1,x2,y2;
        cin>>x1>>y1>>x2>>y2;
        if(y1==y2)
        {
            ks[min(x1,x2)].nd++;
            ks[min(x1,x2)].nh = min(x1,x2);
        }
        else if(x1==x2)
        {
            ls[min(y1,y2)].nd++;
            ls[min(y1,y2)].nh = min(y1,y2);
        }
    }
    sort(ks+1,ks+m+1,cmpd);
    sort(ls+1,ls+n+1,cmpd);
    sort(ks+1,ks+k+1,cmph);
    sort(ls+1,ls+l+1,cmph);
    for(int i = 1 ; i <= k ; i++)
    {
        if(i != 1)
        {
            cout<<" ";
        }
        cout<<ks[i].nh;
    }
    cout<<endl;
    for(int i = 1 ; i <= l ; i++)
    {
        if(i != 1)
        {
            cout<<" ";
        }
        cout<<ls[i].nh;
    }
    cout<<endl;
    return 0;
}


搜索

洛谷 OJ P1563 玩具谜题

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 题目如下:对结构体数组进行排序。 “题目描述:struct Person{int no;int age;int h...
    瑶瑶_2930阅读 4,247评论 0 0
  • 第5章 引用类型(返回首页) 本章内容 使用对象 创建并操作数组 理解基本的JavaScript类型 使用基本类型...
    大学一百阅读 8,446评论 0 4
  • //思想是先按照结构体里面的某个字段进行排序,然后按照该字段排序后打出完整的机构体排序后的信息 func sort...
    运维之美Bially阅读 3,770评论 0 0
  • 指针是C语言中广泛使用的一种数据类型。 运用指针编程是C语言最主要的风格之一。利用指针变量可以表示各种数据结构; ...
    朱森阅读 8,794评论 3 44
  • 第3章 基本概念 3.1 语法 3.2 关键字和保留字 3.3 变量 3.4 数据类型 5种简单数据类型:Unde...
    RickCole阅读 10,614评论 0 21