题解 | #排座椅#

排座椅

https://ac.nowcoder.com/acm/problem/16618

此题的思路就是以行和列上的同学对数为待排序的元素来对行和列进行排序(贪心思想)

using namespace std;
struct node{
    int num;
    int cnt;
}hang[1100],lie[1100];
bool cmp1(struct node a , struct node b ){
    return a.num < b.num;
}
bool cmp2(struct node a , struct node b ){
    return a.cnt > b.cnt;
}
int main(){
    int m,n,k,l,d;    
    cin >> m >> n >> k >> l >>d;
    for (int i = 1 ; i <= max(m,n) ; i ++ ){
        hang[i].num = i;
        lie[i].num = i;
    }
    for (int i = 1 ;i <= d ; i ++ ){
        int x,x1,y,y1;
        cin >> x >> y >> x1 >> y1;
        if (x == x1) {
            lie[y > y1 ? y1 : y].cnt ++ ;/*这儿要考虑
            y的大小问题!!!*/
        }
        else {
            hang[x > x1 ? x1 : x].cnt ++ ;
        }
    }
    sort(hang + 1, hang + 1 + m,cmp2);
        sort(hang + 1, hang + 1 + k,cmp1);
    sort(lie + 1, lie + 1 + n,cmp2);
        sort(lie + 1, lie + 1 + l,cmp1);
    for (int i = 1 ; i <= k ; i ++ ){
        printf("%d",hang[i].num);
        if (i != k ) printf(" ");
    }
    printf("\n");
    for (int i = 1 ; i <= l ; i ++ ){
        printf("%d",lie[i].num);
        if (i != l ) printf(" ");
    }
    return 0;
}
全部评论

相关推荐

07-15 11:35
门头沟学院 Java
心里踏实多了,可以安心准备论文了
看不见我ffgh:牛哇佬,要不要来试一试pdd,部门氛围很好
京东开奖153人在聊
点赞 评论 收藏
分享
06-26 15:33
青岛工学院 Java
积极的秋田犬要冲国企:他现在邀请我明天面试
点赞 评论 收藏
分享
06-26 17:24
已编辑
宁波大学 golang
迷失西雅图:别给,纯kpi,别问我为什么知道
点赞 评论 收藏
分享
07-15 16:52
已编辑
门头沟学院 Java
周五投的,流程今天结束
投递地平线等公司7个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务