ACM-ICPC 2017 南宁赛区现场赛 M. The Maximum Unreachable Node Set(二分图)
题目链接:https://nanti.jisuanke.com/t/19979
题意:给出一个 n 个点,m 条边的 DAG,选出最大的子集使得其中结点两两不能到达。
题解:参考自:https://blog.csdn.net/winter2121/article/details/79849472
首先用弗洛伊德跑出一个可达性矩阵,然后从每个点开始 dfs 跑二分图,则最后 dfs 出的路径为若干条链,而对于链显然除了最后一个结点,其他结点都要删除,而其他结点的总数即跑二分图的匹配数,用总数减去即可。
- #include <bits/stdc++.h>
- using namespace std;
- #define ll long long
- #define ull unsigned long long
- #define mst(a,b) memset((a),(b),sizeof(a))
- #define mp(a,b) make_pair(a,b)
- #define pi acos(-1)
- #define pii pair<int,int>
- #define pb push_back
- const int INF = 0x3f3f3f3f;
- const double eps = 1e-;
- const int MAXN = 1e5 + ;
- const int MAXM = 2e6 + ;
- int n,m;
- int g[][],fa[];
- bool vis[];
- bool dfs(int u) {
- for(int i = ; i <= n; i++) {
- if(g[u][i] && !vis[i]) {
- vis[i] = true;
- if(fa[i] == || dfs(fa[i])) {
- fa[i] = u;
- return true;
- }
- }
- }
- return false;
- }
- int main() {
- #ifdef local
- freopen("data.txt", "r", stdin);
- // freopen("data.txt", "w", stdout);
- #endif
- int t;
- scanf("%d",&t);
- while(t--) {
- scanf("%d%d",&n,&m);
- for(int i = ; i <= n; i++) {
- fa[i] = ;
- for(int j = ; j <= n; j++) g[i][j] = ;
- }
- while(m--) {
- int u,v;
- scanf("%d%d",&u,&v);
- g[u][v] = ;
- }
- for(int k = ; k <= n; k++)
- for(int i = ; i <= n; i++)
- for(int j = ; j <= n; j++)
- g[i][j] |= g[i][k] & g[k][j];
- int res = ;
- for(int i = ; i <= n; i++) {
- mst(vis, );
- if(dfs(i)) res++;
- }
- printf("%d\n",n - res);
- }
- return ;
- }
ACM-ICPC 2017 南宁赛区现场赛 M. The Maximum Unreachable Node Set(二分图)的更多相关文章
- 2016 ACM/ICPC亚洲区青岛站现场赛(部分题解)
摘要 本文主要列举并求解了2016 ACM/ICPC亚洲区青岛站现场赛的部分真题,着重介绍了各个题目的解题思路,结合详细的AC代码,意在熟悉青岛赛区的出题策略,以备战2018青岛站现场赛. HDU 5 ...
- HDU 4046 Panda (ACM ICPC 2011北京赛区网络赛)
HDU 4046 Panda (ACM ICPC 2011北京赛区网络赛) Panda Time Limit: 10000/4000 MS (Java/Others) Memory Limit: ...
- ACM总结——2017ACM-ICPC北京赛区现场赛总结
现在距离比赛结束已经过了一个多星期了,也是终于有时间写下心得了.回来就是被压着做项目,也是够够的. 这次比赛一样是我和两个学弟(虽然是学弟,但我的实力才是最弱的T_T)一起参加的,成绩的话打铁,算是情 ...
- ACM-ICPC 2017 西安赛区现场赛 K. LOVER II && LibreOJ#6062. 「2017 山东一轮集训 Day2」Pair(线段树)
题目链接:西安:https://nanti.jisuanke.com/t/20759 (计蒜客的数据应该有误,题目和 LOJ 的大同小异,题解以 LOJ 为准) LOJ:https://l ...
- ACM-ICPC 2017 沈阳赛区现场赛 G. Infinite Fraction Path && HDU 6223(BFS)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6223 参考题解:https://blog.csdn.net/qq_40482495/article/d ...
- ACM-ICPC 2017 沈阳赛区现场赛 M. Wandering Robots && HDU 6229(思维+期望)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6229 参考题解:https://blog.csdn.net/lifelikes/article/det ...
- 2014ACM/ICPC亚洲区鞍山赛区现场赛1009Osu!
鞍山的签到题,求两点之间的距离除以时间的最大值.直接暴力过的. A - Osu! Time Limit:1000MS Memory Limit:262144KB 64bit IO Fo ...
- ACM-ICPC 2017 西安赛区现场赛 A. XOR(线性基+线段树)
题目链接:https://nanti.jisuanke.com/t/20749 参考题解:https://blog.csdn.net/Lee_w_j__/article/details/8266418 ...
- 2017 ACM-ICPC 亚洲区(南宁赛区)网络赛 M. Frequent Subsets Problem【状态压缩】
2017 ACM-ICPC 亚洲区(南宁赛区)网络赛 M. Frequent Subsets Problem 题意:给定N和α还有M个U={1,2,3,...N}的子集,求子集X个数,X满足:X是U ...
随机推荐
- [转帖]Linux cpufreq 机制了解
Linux cpufreq 机制了解 https://www.cnblogs.com/armlinux/archive/2011/11/12/2396780.html 引用文章链接: http://w ...
- 【AI】【人工智能】【计算机】人工智能工程技术人员等职业信息公示
人社厅发[2019]48号 各省.自治区.直辖市及新疆生产建设兵团人力资源社会保障厅(局).市场监管局.统计局,国务院各部门.各直属机构.各中央企业.有关社会组织人事劳动保障工作机构,中央军委政治工作 ...
- java知识随笔整理-标量函数和表值函数
以sql server为例: 1.表值函数 用户定义表值函数返回 table 数据类型,表是单个 SELECT 语句的结果集. 示例代码CREATE FUNCTION Test_GetEmployee ...
- 基于TCP 协议的socket 简单通信
DNS 服务器:域名解析 socket 套接字 : socket 是处于应用层与传输层之间的抽象层,也是一组操作起来非常简单的接口(接受数据),此接口接受数据之后,交由操作系统 为什么存在 soc ...
- Django 在Python3.5 下报 没有模块MySQLdb
在整个项目站点下的__init__.py 文件里(即和setting.py在同一个文件下)写入以下代码: import pymysql pymysql.install_as_MySQLdb() 需要提 ...
- C库函数:scanf、fscanf、printf、fprintf、sprintf、 snprintf
1. scanf 函数原型 int scanf(const char *format, ...); 功能:从标准输入 stdin 读取格式化输入. 2.fscanf 函数原型 int fscanf( ...
- linux下nginx搭建
1.准备 1-1.安装 make,zlib,gcc-c++,openssl yum -y install make zlib zlib-devel gcc-c++ libtool openssl o ...
- kubernetes 健康检查和初始化容器
Pod-hook:postStart:1.$ $ vim preStart-hook.yaml---apiVersion: v1kind: Podmetadata: name: hook-demo1 ...
- Mysql数据库的优化(本文摘自于网络,文章末端有原文链接)
对于一个以数据为中心的应用,数据库的好坏直接影响到程序的性能,因此数据库性能至关重要.一 般来说,要保证数据库的效率,要做好以下四个方面的工作: ① 数据库设计 ② sql语句优化 ③ 数据库参数配置 ...
- golang随机数及pipe
var pipe1 = make(chan int, 1000) func piTest(){ for{ data := <- pipe1 fmt.Printf("get data:% ...