【bzoj3624】【apio2008】免费道路
2016/06/25
诸老师讲的图论,听了这道题很想写一下,但是看来要留到期末考后了。
07/01
有的标记是说生成树,有的是并查集。。。然而我只是觉得这棵奇怪的生成树蛮精妙的。。。
题目比较难过的只是K的限制,要读清楚题意,像我一开始就没有注意第一要求是“免费道路尽量少”。。。
至于这个K,可大可小。。最好的做法便是先将所有的水泥路连上,找到“必须需要的鹅卵石路”。。。
然后按照K的限制一条条地加。。。代码写的有些臭长。。。因为一个月没写代码了。。。又把==写成了=
判断no solution的时候忘记压缩路径了。。。又要debug。。。。。
#include<cstdio> #include<cstring> #include<algorithm> #define N 200000 using namespace std; int bian[N],f[N],uu[N],vv[N],need[N]; int n,m,k,all,al; int find(int x) { if(f[x]!=x)f[x]=find(f[x]);return(f[x]); } int main() { scanf("%d%d%d",&n,&m,&k); ;i<=n;i++)f[i]=i;int u,v,w; memset(need,,sizeof(need)); ;i<=m;i++) { scanf("%d%d%d",&u,&v,&w);bian[i]=w;uu[i]=u;vv[i]=v; ){ int x=find(u),y=find(v); if(x!=y)f[x]=y; }else all++; } ;i<=m;i++) ) { int x=find(uu[i]),y=find(vv[i]); ,f[x]=y,al++; } if(al>k||all<k){ printf(; } ;i<=n;i++)f[i]=i; ;i<=m;i++) { ) { int x=find(uu[i]),y=find(vv[i]);if(x!=y)f[x]=y; } } ;i<=m;i++) &&bian[i]==) { ,al++; } if(al<k){ printf(; } ;i<=m;i++) ) { ; } ); ;i<=n;i++)if(x!=find(i)){ printf(;} ;i<=m;i++) )printf("%d %d %d\n",uu[i],vv[i],bian[i]); }
【bzoj3624】【apio2008】免费道路的更多相关文章
- [BZOJ3624][Apio2008]免费道路
[BZOJ3624][Apio2008]免费道路 试题描述 输入 输出 输入示例 输出示例 数据规模及约定 见“输入”. 题解 第一步,先尽量加入 c = 1 的边,若未形成一个连通块,则得到必须加入 ...
- BZOJ3624: [Apio2008]免费道路(最小生成树)
题意 题目链接 Sol 首先答案一定是一棵树 这棵树上有一些0边是必须要选的,我们先把他们找出来,如果数量$\geqslant k$显然无解 再考虑继续往里面加0的边,判断能否加到k条即可 具体做法是 ...
- bzoj 3624: [Apio2008]免费道路 生成树的构造
3624: [Apio2008]免费道路 Time Limit: 2 Sec Memory Limit: 128 MBSec Special JudgeSubmit: 111 Solved: 4 ...
- 题解 Luogu P3623 [APIO2008]免费道路
[APIO2008]免费道路 题目描述 新亚(New Asia)王国有 N 个村庄,由 M 条道路连接.其中一些道路是鹅卵石路,而其它道路是水泥路.保持道路免费运行需要一大笔费用,并且看上去 王国不可 ...
- BZOJ 3624: [Apio2008]免费道路
3624: [Apio2008]免费道路 Time Limit: 2 Sec Memory Limit: 128 MBSec Special JudgeSubmit: 1201 Solved: ...
- [Apio2008]免费道路[Kruscal]
3624: [Apio2008]免费道路 Time Limit: 2 Sec Memory Limit: 128 MBSec Special JudgeSubmit: 1292 Solved: ...
- P3623 [APIO2008]免费道路
3624: [Apio2008]免费道路 Time Limit: 2 Sec Memory Limit: 128 MBSec Special Judge Submit: 2143 Solved: 88 ...
- Kruskal算法及其类似原理的应用——【BZOJ 3654】tree&&【BZOJ 3624】[Apio2008]免费道路
首先让我们来介绍Krukal算法,他是一种用来求解最小生成树问题的算法,首先把边按边权排序,然后贪心得从最小开始往大里取,只要那个边的两端点暂时还没有在一个联通块里,我们就把他相连,只要这个图里存在最 ...
- [APIO2008]免费道路
[APIO2008]免费道路 BZOJ luogu 先把必须连的鹅卵石路连上,大于k条no solution 什么样的鹅卵石路(u,v)必须连?所有水泥路都连上仍然不能使u,v连通的必须连 补全到k条 ...
- [APIO2008]免费道路(生成树)
新亚(New Asia)王国有 N 个村庄,由 M 条道路连接.其中一些道路是鹅卵石路,而其它道路是水泥路.保持道路免费运行需要一大笔费用,并且看上去 王国不可能保持所有道路免费.为此亟待制定一个新的 ...
随机推荐
- 安装Odoo9出现的could not execute command "lessc"问题
解决方案: apt-get install node-less
- UICollectionView cellForItemAtIndexPath 方法不走
在storyboard 中 UICollectionView cellForItemAtIndexPath not called 被坑了好久,各种问题点查找,终于解决了 解决办法: self.auto ...
- Mysql相关集锦
1.MyBatis中设置或获取插入的自增主键 http://my.oschina.net/kolbe/blog/512904 2.MySql性能调优与架构设计系列 http://www.cnblogs ...
- (转)Ehcache 整合Spring 使用页面、对象缓存
Ehcache在很多项目中都出现过,用法也比较简单.一般的加些配置就可以了,而且Ehcache可以对页面.对象.数据进行缓存,同时支持集群/分布式缓存.如果整合Spring.Hibernate也非常的 ...
- 【C#】Json数据 排版算法
我从服务器上取得一串Json数据,然后想表示到画面上.不过服务器上取下的Json数据肯定是经过压缩的,空格和换行都没有.如果直接看,可读性非常差. 由于我这个软件是内部管理用的,使用者既能直接看懂Js ...
- Delphi基础语法的学习笔记和注意事项总结
以下是我在自学Delphi的时候,对一些注意点的简单总结,并没有什么系统性可言,只是一个学习时顺手记下的笔记,主要为了当时加深对知识的印象,并没有希望能在以后的复习和使用Delphi中有什么多大的参考 ...
- Web框架之Tornado
概述 Tornado 是 FriendFeed 使用的可扩展的非阻塞式 web 服务器及其相关工具的开源版本.这个 Web 框架看起来有些像web.py 或者 Google 的 webapp,不过为了 ...
- 算法系列:Reservoir Sampling
copyright © 1900-2016, NORYES, All Rights Reserved. http://www.cnblogs.com/noryes/ 欢迎转载,请保留此版权声明. -- ...
- LSM-Tree (BigTable 的理论模型)(转)
Google的BigTable架构在分布式结构化存储方面大名鼎鼎,其中的MergeDump模型在读写之间找到了一个较好的平衡点,很好的解决了web scale数据的读写问题. MergeDump的理论 ...
- js 节点 document html css 表单节点操作
js 节点 document html css 表单节点操作 节点操作:访问.属性.创建 (1)节点的访问:firstChild.lastChild.childNodes.parentChild(父子 ...