hdu 4263(有限制的生成树)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4263
思路:将红边和蓝边单独求一次生成树,求的红边最多可以加入的边数cntr,蓝边最多可以加入的边数cntb,只要k满足条件k>=(n-1-cntr)&&k<=cntb,就说明可以生成这样的spanning tree.
1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<algorithm> 5 using namespace std; 6 #define MAXN 1100 7 int parent[MAXN]; 8 int n,m,k; 9 struct Edge{ 10 int u,v; 11 }B[MAXN*MAXN],R[MAXN*MAXN]; 12 13 int Find(int x) 14 { 15 if(x==parent[x]) 16 return parent[x]; 17 parent[x]=Find(parent[x]); 18 return parent[x]; 19 } 20 21 bool Union(int u,int v) 22 { 23 int r1=Find(u),r2=Find(v); 24 if(r1==r2)return false; 25 parent[r1]=r2; 26 return true; 27 } 28 29 30 int main() 31 { 32 // freopen("1.txt","r",stdin); 33 int ansb,ansr,cntb,cntr; 34 char str[4]; 35 while(scanf("%d%d%d",&n,&m,&k),(n+m+k)) 36 { 37 ansb=ansr=cntb=cntr=0; 38 for(int i=1;i<=m;i++){ 39 scanf("%s",str); 40 if(str[0]=='B'){ 41 scanf("%d%d",&B[cntb].u,&B[cntb].v); 42 cntb++; 43 }else { 44 scanf("%d%d",&R[cntr].u,&R[cntr].v); 45 cntr++; 46 } 47 } 48 for(int i=1;i<=n;i++)parent[i]=i; 49 for(int i=0;i<cntb;i++){ 50 int u=B[i].u,v=B[i].v; 51 if(Union(u,v))ansb++; 52 } 53 for(int i=1;i<=n;i++)parent[i]=i; 54 for(int i=0;i<cntr;i++){ 55 int u=R[i].u,v=R[i].v; 56 if(Union(u,v))ansr++; 57 } 58 if(k>=(n-1-ansr)&&k<=ansb){ 59 puts("1"); 60 }else 61 puts("0"); 62 } 63 return 0; 64 }
View Code
hdu 4263(有限制的生成树)相关推荐
- hdu 3367 Pseudoforest (最大生成树 最多存在一个环)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3367 Pseudoforest Time Limit: 10000/5000 MS (Java/Oth ...
- HDU 6836 Expectation(矩阵生成树 + 期望)
Expectation 思路 题目要求每个生成树边权&\&&的期望值,假设当前这颗生成树对二进制数的第iii位有贡献,则这个位上的构成生成树的边权值一定是111,所以我们可以跑 ...
- hdu区域赛在线热身赛 暨 第十二场组队赛
题目编号:hdu 4257~4266 (对应比赛题号1001~1010) 这是我们第十二场组队赛,在今天中午进行. 比赛刚开始,依然是由我的队友读题.还没看几题,就发现了好多题judge时长高达20秒 ...
- 线段树——单点更新(二)
HDU 4217 Data Structure? http://acm.hdu.edu.cn/showproblem.php?pid=4217 CZ做的一道题目,我帮忙看了看. 题意:给定N个数(1- ...
- HDU - 4305 - Lightning 生成树计数 + 叉积判断三点共线
HDU - 4305 题意: 比较裸的一道生成树计数问题,构造Krichhoof矩阵,求解行列式即可.但是这道题还有一个限制,就是给定的坐标中,两点连线中不能有其他的点,否则这两点就不能连接.枚举点, ...
- 【HDU - 6187】Destroy Walls(思维,最大生成树)
题干: Long times ago, there are beautiful historic walls in the city. These walls divide the city into ...
- 【HDU - 5627】Clarke and MST(最大生成树,与运算性质,最小生成树MST变形)
题干: Clarke is a patient with multiple personality disorder. One day he turned into a learner of grap ...
- HDU 4786 生成树 并查集+极大极小值 黑白边 确定选择白边的数量
题意: 给定一个无向图 n 个点 m条无向边 u v val val == 1 表示边(u, v) 为白边 问能否找到n个点的生成树, 使得白边数为斐波那契数 思路: 并查集求图是否连通( 是否存在生 ...
- 【HDU】5304 Eastest Magical Day Seep Group's Summer【环dp+生成树计数】
传送门:[HDU]5304 Eastest Magical Day Seep Group's Summer my code: my~~code: #include <bits/stdc++.h ...
最新文章
- Linux 内核的文件 Cache 管理机制介绍
- Todolist总结
- 关于pytorch中super的一点思考,结合代码
- python爬虫拉取豆瓣Top250数据
- Java 远程mapduce_java – 如何远程运行mapreduce作业
- 山师计算机学硕分数线,2020山东师范大学考研复试分数线已公布
- 搭建hadoop的HA集群模式(hadoop2.7.3+hive+spark)
- 《Business Rules Engine Overview》--《业务规则引擎概述》write by Mark Kamoski
- 华为机试HJ1:字符串最后一个单词的长度
- 在iOS项目中引入MVVM
- 一种基于annotation的Spring-mvc权限控制方法
- Python(十七):python的编程规范、PEP8
- 柔性电子综述2014:Wearable Electronics and Smart Textiles 可穿戴电子设备
- 如何自己开发漏洞扫描工具
- 学习电商美工设计毕业以后可以干什么
- AAC 音频数据结构实例分析:
- java 替换 ppt内容_Java 替换PPT文档中的文本和图片
- xcode6 下载地址
- Vue引用原生高德地图标注
- java byte与char互转原理_【转】java byte与char互转原理
热门文章
- java计算器的重点解决问题_java计算器问题
- c 应用程序多语言版本,c – 在win32 API应用程序中实现全球化/多语言功能
- 【spring】具名参数
- Angular应用中tsconfig.json文件配置说明及配置全局路径映射
- 微信小程序游戏开发文档以及开发工具地址
- 程序员笔记|如何编写优雅的Dockerfile
- java——慎用可变参数列表
- 拜托,面试别再问我时间复杂度了!!!
- Linux-LNMP(静态元素不记录日志和过期时间,防盗链,解析php,代理,支持ssl)
- 纸上原型设计 VS 桌面原型工具设计,你更喜欢谁?