社区讨论

球调水题,马蜂良好

UVA1175 Ladies' Choice参与者 1已保存回复 0

讨论操作

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

当前回复
0 条
当前快照
1 份
快照标识符
@lo18con1
此快照首次捕获于
2023/10/22 16:51
2 年前
此快照最后确认于
2023/11/02 16:41
2 年前
查看原帖
RT,稳定婚姻系统裸题,可是我连板子都打不对
CPP
#include<bits/stdc++.h>
using namespace std;
int pre[1005][1005],ord[1005][1005];
int nxt[1005],hus[1005],wife[1005];
int t,n,x;
queue<int>q;
void beengaged(int male,int remale){
    int tmp=hus[remale];
    if(tmp!=0){
        wife[tmp]=0;
        q.push(tmp);
    }
    wife[male]=remale;
    hus[remale]=male;
}
int main(){
    cin>>t;
    while(t--){
        cin>>n;
        for(int i=1;i<=n;i++){
            for(int j=1;j<=n;j++){
                cin>>pre[i][j];
            }
        }
        for(int i=1;i<=n;i++){
            for(int j=1;j<=n;j++){
                cin>>x;
                ord[i][x]=j;
            }
            nxt[i]=1;
            wife[i]=0;
            hus[i]=0;
            q.push(i);
        }
        while(!q.empty()){
            int male=q.front();
            q.pop();
            int remale=pre[male][++nxt[male]];
            if(!hus[remale]||ord[remale][male]<ord[remale][hus[remale]]){
                beengaged(male,remale);
            }else{
                q.push(male);
            }
        }
        for(int i=1;i<=n;i++){
            cout<<wife[i]<<"\n";
        }
    }
    return 0;
}

回复

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

正在加载回复...