题解 | #排座椅#

排座椅

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-07 11:30
仁者伍敌:kpi都懒得刷了属于是
点赞 评论 收藏
分享
风中翠竹:真的真的真的没有kpi。。。面试官是没有任何kpi的,捞是真的想试试看这个行不行,碰碰运气,或者是面试官比较闲现在,没事捞个人看看。kpi算HR那边,但是只有你入职了,kpi才作数,面试是没有的。
双非有机会进大厂吗
点赞 评论 收藏
分享
06-22 10:41
赣东学院 Java
程序员小白条:?周六晚上投,这是什么操作,专门找996起步的吗
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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