Guardian of Decency

阅读: 评论:0

Guardian of Decency

Guardian of Decency

题目链接:Guardian of Decency


把不满足的连边,就相当于找最大独立集了。

是一个NP问题,但是我们可以注意到,男女一定不满足,所以这是一个二分图。


AC代码:

#pragma GCC optimize("-Ofast","-funroll-all-loops")
#include<bits/stdc++.h>
//#define int long long
using namespace std;
const int N=500+10;
int n,g[N][N],res,vis[N],mat[N];
struct node{int h; string a,b,c;}t[N];
int find(int x){for(int i=1;i<=n;i++){if(g[x][i]&&!vis[i]){vis[i]=1;if(!mat[i]||find(mat[i])){mat[i]=x;	return 1;}}}return 0;
}
inline void solve(){cin>>n;		memset(mat,0,sizeof mat); memset(g,0,sizeof g); res=0;for(int i=1;i<=n;i++)	cin>>t[i].h>>t[i].a>>t[i].b>>t[i].c;for(int i=1;i<=n;i++){for(int j=1;j<=n;j++)	if(t[j].a!=t[i].a){if(t[i].b==t[j].b&&t[i].c!=t[j].c&&abs(t[i].h-t[j].h)<=40)	g[i][j]=1;}}for(int i=1;i<=n;i++)	memset(vis,0,sizeof vis),res+=find(i);cout<<n-res/2<<'n';
}
signed main(){int T;	cin>>T;	while(T--)	solve();return 0;
}

本文发布于:2024-01-31 11:58:58,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170667353928360.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:Guardian   Decency
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23