摘要: 没想到,我的大学里第一个暑假,9周的时间只有最初的两周在家待着,接下来的7周将会在学校度过。 说真的,这是我上学以来,第一次真正好好利用的假期。在这五周里,周一、三、五下午学长都会给我们讲点知识,之后会给我们题目让我们去A。 因为我一切都是从0开始的,基本上大多数题目都是看网上题解后才做的,很少是从头到尾全靠自己能力AC的。不过,毕竟是一开始嘛,总有不熟悉的,接触久了,自然会有提升。听学长说,搞ACM是很费精力的一件事。我知道这条路很漫长,也许最终不一定能得好的结果,但是既然选择了,就要为之付出、为之努力。 下一周,也就是第六周,将会有三场新成员的单切赛,希望能发挥好一点吧,做不出来也没事,. 阅读全文
posted @ 2013-08-24 20:27 辰曦~文若 阅读(282) 评论(0) 推荐(0) 编辑
摘要: 题意:求解最小生成树的权值是否唯一,即要我们求次小生成树的权值两种方法求最小生成树,一种用prim算法, 一种用kruskal算法 一:用prim算法 对于给定的图,我们可以证明,次小生成树可以由最小生成树变换一边得到。 那么我们可以如下求给定图的次小生成树。首先,我们用prime算法求出图的最小生 阅读全文
posted @ 2013-08-24 20:06 辰曦~文若 阅读(268) 评论(0) 推荐(0) 编辑
摘要: 题意:破坏石油管道,现一直破坏各个管道所要付出的代价,问在有一定money并且要保证剩余的管道为生成树的情况下, 最多能破坏多少个管道,并将他们的编号从小到大输出来思路:将边从大到小排序,构造生成树。 接下来最后剩余的不在最大生成树的边,从最小开始在满足条件下依次取即可。这里注意: 答案不唯一,输出其中之一即可。#include #include #include #include #include #include using namespace std;int n,m;int blank=0;long long s;int a,b,cost;int ans[105000];//若flag为 阅读全文
posted @ 2013-08-24 19:55 辰曦~文若 阅读(402) 评论(2) 推荐(0) 编辑
摘要: 主要就是将最小生成树的边按字典序输出。 读取数据时,把较小的端点赋给u,较大的端点号赋值给v。 这里要用两次排序,写两个比较器: 第一次是将所有边从小到大排序,边权相同时按u从小到大,u相同时按v从小到大,用kruskal求出最小生成树。 第二次将求出的最小生成树的边在排序,这次只要按u、v从小到大排序即可。#include #include #include using namespace std;int index1;int n,cost,idx,t;int ans;struct Edge{ int u,v; int cost;}edge[5500],MST[110];stru... 阅读全文
posted @ 2013-08-24 19:43 辰曦~文若 阅读(258) 评论(0) 推荐(0) 编辑