社区讨论

为什么错了。。。求大神帮看代码

P1056[NOIP 2008 普及组] 排座椅参与者 19已保存回复 18

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
18 条
当前快照
1 份
快照标识符
@mi4g6e55
此快照首次捕获于
2025/11/18 18:45
4 个月前
此快照最后确认于
2025/11/18 18:51
4 个月前
查看原帖
代码如下。。。大犇们帮帮忙,感激不尽!!!
CPP
#include<iostream>
#include<algorithm>
using namespace std;
const int MaxN=1005;
struct tr{
    int a;
    int id;
}r[MaxN];
struct tw{
    int a;
    int id;
}w[MaxN];
int g[MaxN][MaxN];
int m,n,k,l,d;
int cmp1(const void*a,const void*b){
    tr* x=(tr*) a;
    tr* y=(tr*)b;
    return x->a < y->a ? 1:-1;
}
int cmp2(const void*a,const void*b){
    tw* x=(tw*) a;
    tw* y=(tw*)b;
    return x->a < y->a ? 1:-1;
}
int main(){
    memset(r+1,0,sizeof(r));
    memset(w+1,0,sizeof(w));
    cin>>m>>n>>k>>l>>d;
    int i,j;
    int x,y,p,q;
    for(i=1;i<=m;i++)
        w[i].id=i;
    for(i=1;i<=n;i++)
        r[i].id=i;
    for(i=1;i<=d;i++)
    {
        cin>>x>>y>>p>>q;
        g[x][y]=i;
        g[p][q]=i;
    }
    for(i=1;i<=n-1;i++)
        for(j=1;j<=m;j++)
            if(g[i][j]>0&&g[i][j+1]>0&&g[i][j]==g[i][j+1])
                w[i].a++;
    for(i=1;i<=m-1;i++)
        for(j=1;j<=n;j++)
            if(g[i][j]>0&&g[i+1][j]&&g[i][j]==g[i+1][j])
                r[i].a++;
    qsort(w+1,n,sizeof(w[1]),cmp1);
    qsort(r+1,n,sizeof(r[1]),cmp2);
    for(i=1;i<=k;i++)
        cout<<r[i].id<<' ';
    cout<<endl;    
    for(i=1;i<=l;i++)
        cout<<w[i].id<<' ';
    return 0;    
}

回复

18 条回复,欢迎继续交流。

正在加载回复...