文章目录

  • 题目
  • 分析
  • 代码

题目

Description
vanicl2在一片树林里捉迷藏……
这片树林里有NNN座房子,MMM条有向道路,组成了一张有向无环图。
树林里的树非常茂密,足以遮挡视线,但是沿着道路望去,却是视野开阔。如果从房子A沿着路走下去能够到达B,那么在AB里的人是能够相互望见的。
现在cl2要在这NNN座房子里选择KKK座作为藏身点,同时vani也专挑cl2作为藏身点的房子进去寻找,为了避免被vani看见,cl2要求这KKK个藏身点的任意两个之间都没有路径相连。
为了让vani更难找到自己,cl2想知道最多能选出多少个藏身点?

Input
第一行两个整数NNN,MMM。
接下来MMM行每行两个整数xxx、yyy,表示一条从xxx到yyy的有向道路。

Output
一个整数K,表示最多能选取的藏身点个数。

Sample Input
4 4
1 2
3 2
3 4
4 2

Sample Output
2

Data Constraint
对于20%20\%20%的数据,N≤10N≤10N≤10,M≤20M\leq20M≤20;
对于60%60\%60%的数据, N≤100N≤100N≤100,M≤1000M\leq1000M≤1000;
对于100%100\%100%的数据,N≤200N≤200N≤200,M≤30000M\leq30000M≤30000,1≤x,y≤N1\leq x,y\leq N1≤x,y≤N。

分析

先用Floyd求出任意两点uuu是否可以到vvv(传递闭包)得到图G′G'G′,感性理解我们要求的是G′G'G′中的最小路径覆盖数。于是有这个结论:

DAG的最小路径覆盖数 = DAG结点数 - DAG拆点后对应的二分图的最大匹配数

根据G′G'G′拆点建图。简单来说就是:如果uuu可到vvv,就将uuu和v′v'v′连边。
样例如图(样例中G=G′G=G'G=G′):

代码

考场上补题时很急,写得很丑,,,

#include<cstdio>
#include<vector>
#include<cstring>
#include<algorithm>
using namespace std;#define MAXN 200
int N,M;
bool G[MAXN+5][MAXN+5];vector<int> GG[2*MAXN+5];bool vis[2*MAXN+5];
int Match[2*MAXN+5];
bool dfs(int u){for(int i=0;i<int(GG[u].size());i++){int v=GG[u][i];if(!vis[v]){vis[v]=1;if(Match[v]==-1||dfs(Match[v])){Match[u]=v;Match[v]=u;return 1;}}}return 0;
}int main(){scanf("%d%d",&N,&M);for(int i=1;i<=M;i++){int u,v;scanf("%d%d",&u,&v);G[u][v]=1;}for(int k=1;k<=N;k++)for(int i=1;i<=N;i++)for(int j=1;j<=N;j++)G[i][j]=G[i][j]||(G[i][k]&&G[k][j]);for(int i=1;i<=N;i++)for(int j=1;j<=N;j++)if(G[i][j]){GG[i].push_back(j+N);GG[j+N].push_back(i);}memset(Match,-1,sizeof Match);N*=2;int Ans=0;for(int i=1;i<=N;i++)if(Match[i]==-1){memset(vis,0,sizeof vis);Ans+=dfs(i);}printf("%d",N/2-Ans);
}

【NOIP2013模拟】Vani和Cl2捉迷藏相关推荐

  1. 【NOIP2013模拟】Vani和Cl2捉迷藏 题解代码

    原题 Description vani和cl2在一片树林里捉迷藏-- 这片树林里有N座房子,M条有向道路,组成了一张有向无环图. 树林里的树非常茂密,足以遮挡视线,但是沿着道路望去,却是视野开阔.如果 ...

  2. [tyvj1957 Poetize5] Vani和Cl2捉迷藏 (最小路径可重点覆盖+二分图最大匹配)

    传送门 Description 这片树林里有N座房子,M条有向道路,组成了一张有向无环图. 树林里的树非常茂密,足以遮挡视线,但是沿着道路望去,却是视野开阔.如果从房子A沿着路走下去能够到达B,那么在 ...

  3. codevs 2494 Vani和Cl2捉迷藏

    /* 一开始大意了 以为和bzoj上的祭祀是一样的(毕竟样例都一样) 这里不知相邻的点可以相互到达 间接相连的也可以到达 所以floyed先建立一下关系 再跑最大独立集 下面贴一下95 和 100的代 ...

  4. JZOJ 3461. 【NOIP2013模拟联考5】小麦亩产一千八(kela)

    3461. [NOIP2013模拟联考5]小麦亩产一千八(kela) (Standard IO) Time Limits: 1000 ms  Memory Limits: 262144 KB  Det ...

  5. JZOJ 3518. 【NOIP2013模拟11.6A组】进化序列(evolve)

    3518. [NOIP2013模拟11.6A组]进化序列(evolve) (File IO): input:evolve.in output:evolve.out Time Limits: 1000 ...

  6. 【NOIP2013模拟】Freda的传呼机

    [NOIP2013模拟]Freda的传呼机 Time Limits: 100 ms Memory Limits: 131072 KB Description 为了 随时 与 rainbow快速交流, ...

  7. jzoj 3461. 【NOIP2013模拟联考5】小麦亩产一千八(math)

    3461. [NOIP2013模拟联考5]小麦亩产一千八 Description "有了金坷垃,肥料一袋能顶两袋撒,小麦亩产一千八,吸收两米下的氮磷钾--",话说HYSBZ(Hen ...

  8. JZOJ 3388. 【NOIP2013模拟】绿豆蛙的归宿

    3388. [NOIP2013模拟]绿豆蛙的归宿 (Standard IO) Time Limits: 1000 ms  Memory Limits: 131072 KB  Detailed Limi ...

  9. 【NOIP2013模拟】四叶草魔杖

    [NOIP2013模拟]四叶草魔杖 Time Limits: 1000 ms Memory Limits: 131072 KB Description 魔杖护法Freda融合了四件武器,于是魔杖顶端缓 ...

最新文章

  1. 【OpenGL】十四、OpenGL 绘制三角形 ( 绘制 GL_TRIANGLE_STRIP 三角形 | GL_TRIANGLE_STRIP 三角形绘制分析 )
  2. Linux下command not found(以CentOS下没有telnet为例)
  3. java 状态机_Java 数据持久化系列之池化技术
  4. 到底什么是移动边缘计算?
  5. Windows动态库DllMain
  6. VTN系列多通道振弦模拟信号采集仪常规操作
  7. 计算机系统漏洞及防范,计算机系统漏洞以及防范的措施.doc
  8. 360大战QQ演义之一:一场腾讯可能连底裤都输掉的战争!
  9. java mp3转midi_javax_sound_midi-_player 将mid音频文件用java来实现它的播放和使用 - 下载 - 搜珍网...
  10. 【​观察】“数字广东”背后的力量 腾讯云创新政务服务新模式
  11. Prometheus 查询语言 PromQL 的 CPU 使用率计算方法
  12. SWM32系列教程2-新建工程
  13. [心情故事]一九九九年的年终工作总结——318冒险日志之初心者の道场
  14. R | RColorBrewer颜色设置
  15. 微信小程序 拍照/从相册中选择图片
  16. iphone5连接wifi显示密码错误
  17. 《深度探索C++对象模型》读书笔记第五章:构造析构拷贝语意学
  18. 阿里分布式开放消息服务(ONS)原理与实践——笔记整理
  19. 刘强东发布京东全员信:2000+位高管降薪,公司出资 100 亿提升 54 万员工福利!...
  20. 数组的应用--最值问题

热门文章

  1. 2017第八届蓝桥杯 08 拉马车(java)
  2. transformer预测过程_Transformer在推荐模型中的应用总结
  3. 服乔布斯不服库克,苹果传奇设计团队解散内幕曝光
  4. mssql 数据库审计账户_mssql 数据库所有者
  5. 晨山资本王志飏:万物智联时代,智能企业的创新路径
  6. promise解决回调地狱的问题
  7. 间歇性断食是什么 间歇性断食法怎样吃
  8. 斩获iOS美国游戏榜单TOP2 触宝游戏战略进入高速发展轨道
  9. 认识“Silverlight”
  10. 详解dbms_stats.gather_fixed_objects_stats