P1056 排座椅

https://www.luogu.com.cn/problem/P1056

错误原因:最后输出的行和列不是按照能解决多少同学而输出,而是按照从小列向大列、小行向大行输出

/* .................................................................................................................................. */
const int maxn = 1e5+50;
int line[maxn];//列
int row[maxn];
int fi[maxn];
int se[maxn];
int main(){
    int m, n, k, l, d;
    RD(m, n, k, l, d);
    REP(i, d){
        int x, y, p, q;
        RD(x, y, p, q);
        if (x == p){line[min(y, q)]++;}
        if (y == q){row[min(x, p)]++;}
    }
    //int ans = 0;
    int i = 0;
    while(i < k){
        int maxx = 0;
        for(int j = 1; j <= m-1; j++){
            if (row[maxx] < row[j]){
                maxx = j;
            }
        }
        i++;
        fi[maxx]++;
        row[maxx] = 0;
    }

    i = 0;
    while(i < l){
        int maxx = 0;
        for(int j = 1; j <= n-1; j++){
            if (line[maxx] < line[j]){
                maxx = j;
            }
        }
        i++;
        se[maxx]++;
        line[maxx] = 0;
    }
    for(int i = 0; i < 1005; i++){
        if(fi[i]){
            cout << i << " ";
        }
    }
    cout << '\n';
    for(int i = 0; i < 1005; i++){
        if(se[i]){
            cout << i << " ";
        }
    }
    return 0;
}
发布了66 篇原创文章 · 获赞 3 · 访问量 1万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 书香水墨 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览