球调水题,马蜂良好
查看原帖
球调水题,马蜂良好
665688
ybchenyuyang楼主2023/10/1 21:07

RT,稳定婚姻系统裸题,可是我连板子都打不对

#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;
}
2023/10/1 21:07
加载中...