社区讨论
萌新求助,刚学OI,我是男的
P2055[ZJOI2009] 假期的宿舍参与者 4已保存回复 4
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 4 条
- 当前快照
- 1 份
- 快照标识符
- @mi6ysn20
- 此快照首次捕获于
- 2025/11/20 13:02 4 个月前
- 此快照最后确认于
- 2025/11/20 13:02 4 个月前
真心求助
匈牙利,不知道为啥全_WA_,求_dalao_给看
Code:
CPP#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<vector>
#define M(a) memset(a,0,sizeof(a))
using namespace std;
const int maxn=55;
int n,t;
int ins[maxn],iss[maxn],result[maxn],usd[maxn];
int f[maxn][maxn];
bool dfs(int x){
for(int i=1;i<=n;i++){
if(f[x][i]&&!usd[i]){
usd[i]=1;
if(!result[i]||dfs(result[i])){
result[i]=x;return true;
}
}
}
return false;
}
bool xiongyali(){
for(int i=1;i<=n;i++)if((iss[i]&&ins[i])||(!iss[i])){
M(usd);
if(!dfs(i)){
// cout<<" not ok i="<<i<<endl;
return false;
}
// cout<<" ok i="<<i<<endl;
}
return true;
}
int main(){
scanf("%d",&t);
while(t--){
scanf("%d",&n);
M(iss);M(ins);M(f);M(result);
for(int i=1;i<=n;i++)scanf("%d",&iss[i]);
for(int i=1;i<=n;i++)scanf("%d",&ins[i]);
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)scanf("%d",&f[i][j]);
for(int i=1;i<=n;i++)f[i][i]=1;
if(xiongyali())printf("^_^\n");
else printf("T_T\n");
}
}
回复
共 4 条回复,欢迎继续交流。
正在加载回复...