题意:在遥远的东方,有一个神秘的民族,自称Y族。他们世代居住在水面上,奉龙王为神。每逢重大庆典, Y族都会在水面上举办盛大的祭祀活动。我们可以把Y族居住地水系看成一个由岔口和河道组成的网络。每条河道连接着两个岔口,并且水在河道内按照一个固定的方向流动。显然,水系中不会有环流(下图描述一个环流的例子)。由于人数众多的原因,Y族的祭祀活动会在多个岔口上同时举行。出于对龙王的尊重,这些祭祀地点的选择必须非常慎重。准确地说,Y族人认为,如果水流可以从一个祭祀点流到另外一个祭祀点,那么祭祀就会失去它神圣的意义。族长希望在保持祭祀神圣性的基础上,选择尽可能多的祭祀的地点。

题解:最长反链长度=最小链覆盖=可相交的最小路径覆盖=先传递闭包的不相交的最小路径覆盖=n-先传递闭包的最小二分图匹配

  1. /**************************************************************
  2. Problem: 1143
  3. User: walfy
  4. Language: C++
  5. Result: Accepted
  6. Time:76 ms
  7. Memory:1300 kb
  8. ****************************************************************/
  9. //#pragma comment(linker, "/stack:200000000")
  10. //#pragma GCC optimize("Ofast,no-stack-protector")
  11. //#pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native")
  12. //#pragma GCC optimize("unroll-loops")
  13. #include<bits/stdc++.h>
  14. #define fi first
  15. #define se second
  16. #define mp make_pair
  17. #define pb push_back
  18. #define pi acos(-1.0)
  19. #define ll long long
  20. #define vi vector<int>
  21. #define mod 1000000007
  22. #define ld long double
  23. #define C 0.5772156649
  24. #define ls l,m,rt<<1
  25. #define rs m+1,r,rt<<1|1
  26. #define pil pair<int,ll>
  27. #define pli pair<ll,int>
  28. #define pii pair<int,int>
  29. #define cd complex<double>
  30. #define ull unsigned long long
  31. #define base 1000000000000000000
  32. #define fio ios::sync_with_stdio(false);cin.tie(0)
  33. using namespace std;
  34. const double eps=1e-6;
  35. const int N=100+10,maxn=100000+10,inf=0x3f3f3f3f,INF=0x3f3f3f3f3f3f3f3f;
  36. bool ma[N][N],used[N];
  37. int co[N],n,m;
  38. int match(int u)
  39. {
  40. for(int i=1;i<=n;i++)
  41. {
  42. if(!used[i]&&ma[u][i])
  43. {
  44. used[i]=1;
  45. if(!co[i]||match(co[i]))
  46. {
  47. co[i]=u;
  48. return 1;
  49. }
  50. }
  51. }
  52. return 0;
  53. }
  54. int main()
  55. {
  56. scanf("%d%d",&n,&m);
  57. for(int i=1;i<=m;i++)
  58. {
  59. int a,b;
  60. scanf("%d%d",&a,&b);
  61. ma[a][b]=1;
  62. }
  63. for(int i=1;i<=n;i++)
  64. for(int j=1;j<=n;j++)
  65. for(int k=1;k<=n;k++)
  66. ma[i][j]|=(ma[i][k]&ma[k][j]);
  67. int ans=0;
  68. for(int i=1;i<=n;i++)
  69. {
  70. memset(used,0,sizeof used);
  71. if(match(i))ans++;
  72. }
  73. printf("%d\n",n-ans);
  74. return 0;
  75. }
  76. /********************
  77. ********************/

bzoj1143: [CTSC2008]祭祀river 最长反链的更多相关文章

  1. [BZOJ1143][CTSC2008]祭祀river(最长反链)

    题目:http://www.lydsy.com:808/JudgeOnline/problem.php?id=1143 分析: 最长反链==最小路径覆盖==n-二分图最大匹配数 某神犇对二分图的总结: ...

  2. bzoj1143(2718)[CTSC2008]祭祀river(最长反链)

    1143: [CTSC2008]祭祀river Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 2781  Solved: 1420[Submit][S ...

  3. BZOJ 1143: [CTSC2008]祭祀river 最长反链

    1143: [CTSC2008]祭祀river Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://www.lydsy.com/JudgeOnline ...

  4. BZOJ 1143 1143: [CTSC2008]祭祀river 最长反链

    1143: [CTSC2008]祭祀river Description 在遥远的东方,有一个神秘的民族,自称Y族.他们世代居住在水面上,奉龙王为神.每逢重大庆典, Y族都会在水面上举办盛大的祭祀活动. ...

  5. BZOJ1143 [CTSC2008]祭祀river 【二分图匹配】

    1143: [CTSC2008]祭祀river Time Limit: 10 Sec  Memory Limit: 162 MB Submit: 3236  Solved: 1651 [Submit] ...

  6. 2018.08.20 bzoj1143: [CTSC2008]祭祀river(最长反链)

    传送门 一道简单的求最长反链. 反链简单来说就是一个点集,里面任选两个点u,v都保证从u出发到不了v且v出发到不了u. 链简单来说就是一个点集,里面任选两个点u,v都保证从u出发可以到达v或者v出发可 ...

  7. BZOJ1143 [CTSC2008]祭祀river 二分图匹配 最小链覆盖

    欢迎访问~原文出处——博客园-zhouzhendong 去博客园看该题解 题目传送门 - BZOJ1143 题意概括 给出一个有向图.求最小链覆盖. 题解 首先说两个概念: 链:一条链是一些点的集合, ...

  8. [BZOJ1143][CTSC2008]祭祀river(Dilworth定理+二分图匹配)

    题意:给你一张n个点的DAG,最大化选择的点数,是点之间两两不可达. 要从Dilworth定理说起. Dilworth定理是定义在偏序集上的,也可以从图论的角度解释.偏序集中两个元素能比较大小,则在图 ...

  9. bzoj1143: [CTSC2008]祭祀river && bzoj27182718: [Violet 4]毕业旅行

    其实我至今不懂为啥强联通缩点判入度会错... 然后这个求的和之前那道组合数学一样,就是最长反链=最小链覆盖=最大独立集. #include<cstdio> #include<iost ...

随机推荐

  1. 170607、SQL Select语句完整的执行顺序

    SQL Select语句完整的执行顺序: 1.from子句组装来自不同数据源的数据: 2.where子句基于指定的条件对记录行进行筛选: 3.group by子句将数据划分为多个分组: 4.使用聚集函 ...

  2. 热词统计以及Quartz.net的简单使用

    一.热词统计 方案一: 设计一个表:ID       KeyWord     Count 当用户再输入框中查询的时候,我们就往表中插入数据,在插入之前首先判断是否已经存在keyword,存在的话,让C ...

  3. Android--aapt命令

    1.aapt l[ist] [-v] [-a] file.{zip,jar,apk} 释义:列出压缩文件中的内容 aapt l xxx.apk:简单的罗列压缩文件中每一项的内容 aapt l -v x ...

  4. C#学习笔记之(Hellow,WORLD;常量和变量;键盘输入和输出;数据类型转换;计算器)

    HELLO,WORLD Console.Write 表示向控制台直接写入字符串,不进行换行,可继续接着前面的字符写入. Console.WriteLine 表示向控制台写入字符串后换行. Consol ...

  5. Information:java: Errors occurred while compiling module 'spring'

    IntellJ Idea遇到Errors occurred while compiling module的解决方法 - sully2008的专栏 - CSDN博客 https://blog.csdn. ...

  6. python 面向对象 __dict__

    打印 类或对象中的所有成员 类的构造函数属性 属于对象:类中的公有属性和方法等属于类 打印信息 class schoolMember(object): '''学校成员分类''' member = 0 ...

  7. 需求:过滤下面这个网页里共723行 校对中里 行数为两位数的 行 并设置sz和rz在Windows和Linux之间发送和接收文件不用搭FTP

    需求:过滤下面这个网页里共723行 校对中里 行数为两位数的 行 并设置sz和rz在Windows和Linux之间发送和接收文件不用搭FTP 需求:过滤下面这个网页里共723行 校对中里 行数为两位数 ...

  8. KS检验学习[转载]

    转自:https://wenku.baidu.com/view/ccfa573a3968011ca30091d6.html https://www.cnblogs.com/arkenstone/p/5 ...

  9. 【转】Deep Learning(深度学习)学习笔记整理系列之(五)

    9.2.Sparse Coding稀疏编码 如果我们把输出必须和输入相等的限制放松,同时利用线性代数中基的概念,即O = a1*Φ1 + a2*Φ2+….+ an*Φn, Φi是基,ai是系数,我们可 ...

  10. 001-mybatis框架

    架构分析: 1. 读SqlMapConfig.xml. 当调用与数据库有关的操作的时候,会读SqlMapConfig.xml文件中的信息,里面配置了Mybatis的运行环境信息,加载mapper.xm ...