题意:
      有n个学生,老师要带他们出去玩,但是老师比较保守,怕他们之间萌生爱意,所以带出去的所有同学必须至少满足四个条件中的一组,问最多能带多少人出去玩。

思路:
       比较简单二分图的最大独立集元素个数,我们直接把可能产生爱意(四个都不满足)的连上边,然后一遍匈牙利,最后输出n-匹配数就行了,为什么是这样我就不证明了,比较经典简单的问题。

#include<stdio.h>
#include<string.h>

#define N_node 550
#define N_edge 255000

typedef struct
{
   int to ,next;
}STAR;

typedef struct
{
   int h;
   char str1[5] ,str2[110] ,str3[110];
}NODE;

NODE node[N_node];
STAR E[N_edge];
int list[N_node] ,tot;
int mk_dfs[N_node] ,mk_gx[N_node];

void add(int a, int b)
{
   E[++tot].to = b;
   E[tot].next = list[a];
   list[a] = tot;
}

int DFS_XYL(int x)
{
    for(int k = list[x] ;k ;k = E[k].next)
    {
       int to = E[k].to;
       if(mk_dfs[to]) continue;
       mk_dfs[to] = 1;
       if(mk_gx[to] == -1 || DFS_XYL(mk_gx[to]))
       {
          mk_gx[to] = x;
          return 1;
       }
    }
    return 0;
}

int abss(int x)
{
   return x > 0 ? x : -x;
}

bool jude(int a ,int b)
{
    return abss(node[a].h - node[b].h) <= 40 && node[a].str1[0] != node[b].str1[0] && !strcmp(node[a].str2 ,node[b].str2) && strcmp(node[a].str3 ,node[b].str3);
}

int main ()
{
   int t ,n ,i ,j;
   scanf("%d" ,&t);
   while(t--)
   {
      scanf("%d" ,&n);
      for(i = 1 ;i <= n ;i ++)
      scanf("%d %s %s %s" ,&node[i].h ,node[i].str1 ,node[i].str2 ,node[i].str3);
      
      memset(list ,0 ,sizeof(list)) ,tot = 1;
      for(i = 1 ;i <= n ;i ++)
      for(j = i + 1 ;j <= n ;j ++)
      {
         if(jude(i ,j))
         {
            node[i].str1[0] == 'M' ? add(i ,j) : add(j ,i);
         }
      }
      memset(mk_gx ,255 ,sizeof(mk_gx));
      int Ans = 0;
      for(i = 1 ;i <= n ;i ++)
      {
         memset(mk_dfs ,0 ,sizeof(mk_dfs));
         Ans += DFS_XYL(i);
      }
      printf("%d\n" ,n - Ans);
    }
    return 0;
}

LA3415保守的老师相关推荐

  1. 【LA3415 训练指南】保守的老师 【二分图最大独立集,最小割】

    题意 Frank是一个思想有些保守的高中老师.有一次,他需要带一些学生出去旅行,但又怕其中一些学生在旅行中萌生爱意.为了降低这种事情发生的概率,他决定确保带出去的任意两个学生至少要满足下面四条中的一条 ...

  2. 大学计算机科技论文格式,大学生科技论文范文

    这类雅思写作议论文话题曾经出现在,2005-4-9北京.济南.天津.成都.广州,下面来让我们看一下"雅思写作议论文真题范文:大学生评估教师"的具体内容吧 雅思写作真题还原 You ...

  3. 清华大学唐杰老师组:自监督学习最新研究进展

    作者|AI Box 来源|RUC AI Box 近年来,深度监督学习取得了巨大的成功.然而,它依赖于手工标签,并且易受攻击的弱点促使学者们探索更好的解决方案.近年来,自监督学习作为一种新的学习方法,在 ...

  4. 高老师的架构设计_隽语集(DD_1951)

    前言:软件接包产业的框架战略,就是分为三层:1)APP, 2)框架, 3)框架幕后模块. 然后,<将APP转包出去.将框架赠送出去.取得模块复制权>.框架就如同万里长城,控制塞外行为.保护 ...

  5. 冠希老师看了会流泪,分布式存储爱我你怕了吗?

    本文由微信公众号DappVision原创首发,转载请联系授权 如今全球数据储存量呈现爆炸式增长,企业及互联网数据以每年50%的速率在增长,据预测,到2020年,全球数据量将达到35ZB,等于80亿块4 ...

  6. 《区块链技术与应用》北大肖臻老师——课程笔记【6-8】

    <区块链技术与应用>北大肖臻老师--课程笔记[6-8] 一.BTC网络 二.BTC-挖矿难度 三.BTC-挖矿 提示:以下内容只是个人在学习过程中记录的笔记,图片均是肖老师课程的截图,可供 ...

  7. 陈远:兴趣是永远的老师

    CSDN教师节感恩专题活动网址:http://subject.csdn.net/teachers%27/ 感谢福建省漳平一中的李超老师 之所以走上程序员这条道路,是因为我对在计算机上编写很酷的程序非常 ...

  8. 《袁老师访谈录》第九期丨陈家强教授/香港科大商学院前院长【问诊未来·院长系列:科技铺就金融创新之路】...

    2020年3月11日晚8时,香港科大商学院内地办事处重磅推出的<袁老师访谈录>[问诊未来•院长系列],成功举办了第三次线上直播,共有3万多人次观看了本次直播. [院长系列]邀请香港科大10 ...

  9. 我在武汉新东方上过的8个老师

    前言 2014年1月份,大一上学期的寒假,我上了武汉新东方鲁巷校区的托福强化班,4个老师.20015年8月,大二与大三之间的暑假,我上了武汉新东方鲁巷校区的GRE强化班,5个老师,其中一个老师也同时是 ...

最新文章

  1. IronPython2.7 C# 4.0 互调用备忘
  2. 现金流量表整理及开发
  3. ECCV 2012 KCF/DCF:《High-speed tracking with kernelized correlation filters》论文笔记
  4. 扫描枪读条码数据在单片机串口电路的读取与显示
  5. Linux中python2和python3的pip设置 及清华安装源
  6. HTML pre元素
  7. fetch结合(async函数来使用)
  8. HTML+CSS+Javascript教学视频【0409更新】
  9. 小米3g刷高格固件_小米路由器3G版padavan老毛子原版固件
  10. format函数python生成列表_python之自动生成器(持续更新)
  11. 训练GAN的16个trick
  12. DNS默认的端口号是: 53
  13. python 文件路径找不到_python路径正确但找不到文件
  14. MySQL对时间戳的格式化
  15. 胡凡 《算法笔记》 上机实战训练指南 3.1 简单模拟
  16. QBC和QBE查询方法
  17. 使用Nginx搭建直播服务器(nginx-rtmp-module)
  18. Lightly:新一代的 Cloud IDE
  19. 萧乾升:3.26黄金原油最新行情,让我们牛转乾坤
  20. 【杰理AC696X】PWM推RGB灯实例

热门文章

  1. Windows 环境 Tomcat 的 HTTPS 单向认证和双向认证的配置
  2. 利用redis漏洞远程添加计划任务挖取比特币
  3. 作为前端开发兼任产品专员是一种咋样的体验
  4. insta经典滤镜下载
  5. copy和mutablecpy区别
  6. SpringBootStarter种类
  7. 第四篇 前端学习之JQuery基础
  8. 系统性能优化的常见八大误区
  9. 洛谷 P1550 浇水
  10. 刷题向》关于一道比较优秀的递推型DP(openjudge9275)(EASY+)