题意:

      有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. LA 3415 保守的老师

    题目链接:https://vjudge.net/contest/161820#problem/E 题意: 有一些同学,要从中选出一些同学来,人数尽量多,但是,两两之间要满足至少一个条件(身高差> ...

  3. uva 12083 Guardian of Decency (二分图匹配)

    uva 12083 Guardian of Decency Description Frank N. Stein is a very conservative high-school teacher. ...

  4. poj 2771 Guardian of Decency 解题报告

    题目链接:http://poj.org/problem?id=2771 题目意思:有一个保守的老师要带他的学生来一次短途旅行,但是他又害怕有些人会变成情侣关系,于是就想出了一个方法: 1.身高差距   ...

  5. Redis的Python实践,以及四中常用应用场景详解——学习董伟明老师的《Python Web开发实践》

    首先,简单介绍:Redis是一个基于内存的键值对存储系统,常用作数据库.缓存和消息代理. 支持:字符串,字典,列表,集合,有序集合,位图(bitmaps),地理位置,HyperLogLog等多种数据结 ...

  6. 潭州学院-JavaVIP的Javascript的高级进阶-KeKe老师

    潭州学院-JavaVIP的Javascript的高级进阶-KeKe老师 讲的不错,可以学习 下面是教程的目录截图: 下载地址:http://www.fu83.cn/thread-283-1-1.htm ...

  7. 监控阮一峰老师的blog

    引言 阮一峰大家基本都认识,很厉害的一个人,经济学博士,文章写得很棒,知识面很广泛,计算机.算法.英语.文采,这是能想到的他的一些标签,他的博客应该算是最受欢迎的博客之一了. 我经常回去看他的博客,但 ...

  8. java抽象-老师的生日-逻辑思维-有趣的面试题-遁地龙卷风

    (-1)写在前面 都快去北京了,硬生生的安排一场java考试,对于那些特别细节的东西我忘了吧也不觉得有什么不好,以前都记得,也都见过,只不过平时不常用连接断了,但是你死记硬背是没用的,一段时间后还是会 ...

  9. 数据库中老师学生家长表添加自动同意好友自动(AgreeAddingFriend ),默认为True

    数据库中老师学生家长表添加自动同意好友自动(AgreeAddingFriend ),默认为True alter table Sys_User add AgreeAddingFriend bit alt ...

随机推荐

  1. CVE-2020-1938 -Tomcat-AJP任意文件读取/包含

    为什么这个漏洞被称作 Ghostcat(幽灵猫)? 这个漏洞影响全版本默认配置下的 Tomcat(在我们发现此漏洞的时候,确认其影响 Tomcat 9/8/7/6 全版本,而年代过于久远的更早的版本未 ...

  2. 浅谈.Net Core后端单元测试

    目录 1. 前言 2. 为什么需要单元测试 2.1 防止回归 2.2 减少代码耦合 3. 基本原则和规范 3.1 3A原则 3.2 尽量避免直接测试私有方法 3.3 重构原则 3.4 避免多个断言 3 ...

  3. 腾讯云发布存储一体机TStor,打通全面上云“最后一公里”

    随着云计算.大数据.人工智能等技术的发展,各行各业加速数据化转型,数据容量以前所未有的速度增长,本地存储难以适应数据的指数式增长. 另一方面,公有云因其易扩展.低成本.安全稳定的特点,逐渐被企业广泛应 ...

  4. go beego框架与python实现数据交互

    目标:将go中一个二维数组传到pythone中处理并返回.难点在于数据格式的转换. go代码如下: package main import ( "os/exec" "sy ...

  5. Nginx配置静态文件服务从入门到精通

    作者:三十三重天 博客:http://www.zhouhuibo.club 通过学习和分享的过程,将自己工作中的问题和技术总结输出,希望菜鸟和老鸟都能通过自己的文章收获新的知识,并付诸实施. 引言 使 ...

  6. 简单ping确定网络故障

    1.ping localhost (127.0.0.1) 目的:确定TCP/IP有无问题 2.ping本机地址 用来检测网卡驱动有无问题 如何获取本机地址? win+r cmd 输入ipconfig/ ...

  7. Srping源码之XMLBeanFactory

    ​ 本文是针对Srping的XMLBeanFactory来进行解析xml并将解析后的信息使用GenericBeanDefinition作为载体进行注册,xmlBeanFactory已经在Spring ...

  8. 回顾反射机制Method

    package com.demo.service; public interface SayHello { void sayHello(String name); } 接口实现类 package co ...

  9. java例题_18 乒乓球比赛(对手问题)

    1 /*18 [程序 18 乒乓球赛] 2 题目:两个乒乓球队进行比赛,各出三人.甲队为 a,b,c 三人,乙队为 x,y,z 三人.已抽签决定比赛名单. 3 有人向队员打听比赛的名单.a说他不和 x ...

  10. 【linux】驱动-9-设备树插件

    目录 前言 9. Linux设备树插件 9.1 格式 9.2 设备树插件的编译和加载 9.2.1 单独使用dtc工具编译 9.2.2 内核dtc工具编译设备树插件 9.2.3 加载设备树插件 9.2. ...