题解:

二分图最大独立及

每两个不能选的渐变

输出n+m-最大匹配

代码:

#include<cstdio>
#include<cmath>
#include<algorithm>
#include<cstring>
using namespace std;
const int N=;
int ne[N*N],num,fi[N],x,T,zz[N*N],n,m,f[N],match[N],a[N],b[N],cnt1,cnt2;
char s1[N][N],s[N],s2[N][N],m1[N][N],m2[N][N];
void jb(int x,int y)
{
ne[++num]=fi[x];
fi[x]=num;
zz[num]=y;
}
int dfs(int x)
{
for (int i=fi[x];i;i=ne[i])
if (!f[zz[i]])
{
f[zz[i]]=;
if (!match[zz[i]]||dfs(match[zz[i]]))
{
match[zz[i]]=x;
return ;
}
}
return ;
}
int pd(char s1[],char s2[])
{
if (strlen(s1)!=strlen(s2))return ;
for (int i=;s1[i];i++)
if (s1[i]!=s2[i])return ;
return ;
}
int main()
{
scanf("%d",&T);
while (T--)
{
memset(match,,sizeof match);
memset(fi,,sizeof fi);
num=cnt1=cnt2=;
scanf("%d",&n);
for (int i=;i<=n;i++)
{
scanf("%d%s",&x,&s);
if (s[]=='F')
{
a[++cnt1]=x;
scanf("%s%s",&m1[cnt1],&s1[cnt1]);
}
else
{
b[++cnt2]=x;
scanf("%s%s",&m2[cnt2],s2[cnt2]);
}
}
for (int i=;i<=cnt1;i++)
for (int j=;j<=cnt2;j++)
if (abs(a[i]-b[j])<=&&pd(m1[i],m2[j])&&!pd(s1[i],s2[j]))jb(i,j);
int ans=;
for (int i=;i<=n;i++)
{
memset(f,,sizeof f);
ans+=dfs(i);
}
printf("%d\n",n+m-ans);
}
}

poj2771的更多相关文章

  1. POJ2771 Guardian of Decency

    Time Limit: 3000MS   Memory Limit: 65536K Total Submissions: 5513   Accepted: 2319 Description Frank ...

  2. POJ2771最大独立集元素个数

    题意:       女生和男生之间只要满足四个条件中的一个,那么两个人就不会在一起!然后给出一些男生和女生,问最多多少人一起做活动彼此不会产生暧昧关系. 思路:       这样的问题还是比较裸的问法 ...

  3. HDU1068/POJ1466_Girls and Boys(二分图/最大独立集=N-最大匹配)

    解题报告 http://blog.csdn.net/juncoder/article/details/38160591 题目传送门(POJ) 题目传送门(HDU) 题意: 求满足条件的最大集合:集合内 ...

随机推荐

  1. Codeforces Round #403 (Div. 2, based on Technocup 2017 Finals) B. The Meeting Place Cannot Be Changed

    地址:http://codeforces.com/contest/782/problem/B 题目: B. The Meeting Place Cannot Be Changed time limit ...

  2. Phoenix编译支持CDH

    作者:Syn良子 出处:http://www.cnblogs.com/cssdongl/p/6898227.html 转载请注明出处 最近由于想调研下低延迟的数据查询框架,那么基于SQL on Hba ...

  3. oracle中length、lengthb、substr、substrb用法小结

    我记得我曾经在开发form的时候犯过这样一个错误,对于form中的某个字段,对应于数据库中某张表的字段,假设在数据库中这个字段一般也就用到20个汉字的长度,后来我在开发form的时候,设置item类型 ...

  4. 验证url格式

    //验证url var url=$("#address").val(); var regUrl = /^http[s]{0,1}:\/\/.+$/ ; if(url.match(r ...

  5. 摄像头PIN脚功能作用

    摄像头PIN脚功能作用,Camera硬件系统分析 9 f  E+ E2 b  N. j4 M2 U- a. q9 A) T# c& O& C% x+ l5 l! q           ...

  6. 在Pycharm中配置Github

    Pycharm是当前进行python开发,尤其是Django开发最好的IDE.GitHub是程序员的圣地,几乎人人都在用. 本文假设你对pycharm和github都有一定的了解,并且希望在pycha ...

  7. 20145310 《Java程序设计》第4周学习总结

    20145310 <Java程序设计>第4周学习总结 教材学习内容总结 本周主要进行第五章和第六章的学习. 第六章 继承与多态 子类(Inherit)继承父类,避免重复的行为定义,不过并非 ...

  8. 比较字符串CompareTo的用法及注意

    CompareTo用法 static void Main(string[] args)         {             string str = "1";        ...

  9. 分析Ubuntu18.04启动后的各种任务

    jello@jello:~$ ps -A  PID TTY          TIME CMD    1 ?        00:00:02 systemd    由idle进程(进程号为0的进程,那 ...

  10. TCP_DB_中间件_数据打包格式

    ZC: 这里约定的是,C和S之间 传输的TCP数据包的格式 1.TCP数据包 打包格式 1.1.TCP包长度(int32) + TCP包序号(int32) + TCP包类型(int32) + TCP包 ...