BZOJ原题链接

洛谷原题链接

对于每个需要床位的人向他能睡的床连边,然后就是二分图最大匹配模板了。

这里用匈牙利算法。

  1. #include<cstdio>
  2. #include<cstring>
  3. using namespace std;
  4. const int N = 55;
  5. const int M = 1e4 + 10;
  6. int fi[M], di[M], ne[M], mtc[M], l;
  7. bool v[M], h[N], sc[N];
  8. inline int re()
  9. {
  10. int x = 0;
  11. char c = getchar();
  12. bool p = 0;
  13. for (; c < '0' || c > '9'; c = getchar())
  14. p |= c == '-';
  15. for (; c >= '0' && c <= '9'; c = getchar())
  16. x = x * 10 + c - '0';
  17. return p ? -x : x;
  18. }
  19. inline void add(int x, int y)
  20. {
  21. di[++l] = y;
  22. ne[l] = fi[x];
  23. fi[x] = l;
  24. }
  25. bool dfs(int x)
  26. {
  27. int i, y;
  28. for (i = fi[x]; i; i = ne[i])
  29. if (!v[y = di[i]])
  30. {
  31. v[y] = 1;
  32. if (!mtc[y] || dfs(mtc[y]))
  33. {
  34. mtc[y] = x;
  35. return true;
  36. }
  37. }
  38. return false;
  39. }
  40. int main()
  41. {
  42. int i, j, n, t;
  43. t = re();
  44. while (t--)
  45. {
  46. n = re();
  47. l = 0;
  48. memset(fi, 0, sizeof(fi));
  49. memset(mtc, 0, sizeof(mtc));
  50. for (i = 1; i <= n; i++)
  51. sc[i] = re();
  52. for (i = 1; i <= n; i++)
  53. sc[i] ? h[i] = re() : h[i] = re() ? 0 : 0;
  54. int k = 0;
  55. for (i = 1; i <= n; i++)
  56. if (!sc[i] || (sc[i] && !h[i]))
  57. k++;
  58. for (i = 1; i <= n; i++)
  59. {
  60. if (!h[i] && sc[i])
  61. add(i, i + n);
  62. for (j = 1; j <= n; j++)
  63. if (re() && !h[i] && sc[j])
  64. add(i, j + n);
  65. }
  66. int s = 0;
  67. for (i = 1; i <= n; i++)
  68. {
  69. memset(v, 0, sizeof(v));
  70. if (dfs(i))
  71. s++;
  72. }
  73. s ^ k ? printf("T_T\n") : printf("^_^\n");
  74. }
  75. return 0;
  76. }

BZOJ1433或洛谷2055 [ZJOI2009]假期的宿舍的更多相关文章

  1. 洛谷2055 [ZJOI2009]假期的宿舍

    题目描述 学校放假了 · · · · · · 有些同学回家了,而有些同学则有以前的好朋友来探访,那么住宿就是一个问题.比如 A 和 B 都是学校的学生,A 要回家,而 C 来看B,C 与 A 不认识. ...

  2. 洛谷 2055 [ZJOI2009]假期的宿舍——二分图匹配

    题目:https://www.luogu.org/problemnew/show/P2055 #include<iostream> #include<cstdio> #incl ...

  3. 洛谷P2055 [ZJOI2009]假期的宿舍

    P2055 [ZJOI2009]假期的宿舍 题目描述 学校放假了 · · · · · · 有些同学回家了,而有些同学则有以前的好朋友来探访,那么住宿就是一个问题.比如 A 和 B 都是学校的学生,A ...

  4. 洛谷——P2055 [ZJOI2009]假期的宿舍

    P2055 [ZJOI2009]假期的宿舍 学校放假了 · · · · · · 有些同学回家了,而有些同学则有以前的好朋友来探访,那么住宿就是一个问题.比如 A 和 B 都是学校的学生,A 要回家,而 ...

  5. 洛谷 P2055 [ZJOI2009]假期的宿舍

    洛谷 P2055 题目描述 学校放假了 · · · · · · 有些同学回家了,而有些同学则有以前的好朋友来探访,那么住宿就是一个问题.比如 A 和 B 都是学校的学生,A 要回家,而 C 来看B,C ...

  6. 洛谷P2055 [ZJOI2009]假期的宿舍 [二分图最大匹配]

    题目描述 学校放假了 · · · · · · 有些同学回家了,而有些同学则有以前的好朋友来探访,那么住宿就是一个问题.比如 A 和 B 都是学校的学生,A 要回家,而 C 来看B,C 与 A 不认识. ...

  7. 洛谷P2055 [ZJOI2009]假期的宿舍 题解

    题目链接: https://www.luogu.org/problemnew/show/P2055 分析: 这道题比较简单,二分图的练习题(当然最大流同理). 易得我们可以将人放在一侧,床放在一侧. ...

  8. 洛谷$P2055\ [ZJOI2009]$ 假期的宿舍 最大流

    正解:最大流 解题报告: 传送门$QwQ$ 这种一看就很网络流鸭,直接说咋建图趴. 考虑把在校的人拆成人和床.$S$连向所有不回家的人,所有床连向$T$,认识的人之间人向床连边,跑个最大流就成. $o ...

  9. 2055 [ZJOI2009]假期的宿舍

    P2055 [ZJOI2009]假期的宿舍 题目描述 学校放假了 · · · · · · 有些同学回家了,而有些同学则有以前的好朋友来探访,那么住宿就是一个问题.比如 A 和 B 都是学校的学生,A ...

随机推荐

  1. Android Dialog.dismiss()与Activity.finish()顺序

    activity.finish() 和dialog.show() 同时调用的时候, 需要先调用dialog.dismiss() 后activity.finish() 如果先直接finish()后,再触 ...

  2. 围绕Buganizer的产品流程

    做技术的一定知道缺陷跟踪系统(bug系统),更不用说做测试的了,不过普遍都认为这系统是用来记录bug的,其实在google内部,这套系统是产品/项目围绕的核心.Google Buganizer扩展了类 ...

  3. CodeSmith和Powerdesigner的搭建和实例化操作 转载自黄聪同学

    好了,废话少说,开始我们的CodeSmith旅程吧,我先讲讲这个系列教程要完成的目标吧,众所周知,CodeSmith其中一个强大的功能就是依照模板生成批量代码,这也是吸引着众多编程人士使用它的原因,它 ...

  4. vi 使用小结

    复制 1,ny 从哪行到哪行的复制,中间用逗号隔开,然后命令y. 黏贴 是在命令模式下直接按p即可 跳到n行: 命令模式直接输入数字即可 剪切:d命令 删除:x命令 跳到行首行尾:直接home或end ...

  5. 用GDB调试程序(五)

    查看运行时数据———————        在你调试程序时,当程序被停住时,你可以使用print命令(简写命令为p),或是同义命令inspect来查看当前程序的运行数据.print命令的格式是:    ...

  6. Vue自学笔记--项目的创建

    一.项目的创建 1.必须要安装nodejs    2.搭建vue的开发环境 ,安装vue的脚手架工具   官方命令行工具        npm install --global vue-cli  /  ...

  7. linux git clone 指定分支

    git clone -b develop http://192.168.11.11:8888/scm/git/vrmmo 指定下载develop分支

  8. Spring整体了解

      1.spring原理 内部最核心的就是IOC了,动态注入,让一个对象的创建不用new了,可以自动的生产,这其实就是利用java里的反射,反射其实就是在运行时动态的去创建.调用对象,Spring就是 ...

  9. 【JVM底层策略 一】GC roots如何判断对象不可达

    查找内存中不再使用的对象 引用计数法 引用计数法就是如果一个对象没有被任何引用指向,则可视之为垃圾.这种方法的缺点就是不能检测到环的存在. 2.根搜索算法 根搜索算法的基本思路就是通过一系列名为”GC ...

  10. Openface 入门

    Openface 简单入门 背景 Openface是一个开源的人脸识别框架,同类软件产品还有 seetaface ,DeepID等,当然,如果算上商业的产品,那就更多了. Openface人脸比对结果 ...