算法训练
Kruskal算法
P2323 [HNOI2006]公路修建问题
思路:复习了一遍kruskal算法。本题较为复杂,但拆解下来算法中都是常规操作。 1.对一级公路进行排序,跑一遍kurskal算法,当一级公路数量达到k时,则返回退出,记录最大的公路数值; 2.同样,对二级公路排序,再重新写一个kruskal算法,当数量达到n-1-k则退出循环,记录二级公路最大数值; 3.这种做法认真想来是存在问题的,如果k条一级公路选定后数值小于二级公路最大数值,那么可以再继续选1级公路,二级公路则选前面一条公路数值,进行比较,判断出最小;
#include
//#define int long long
#define endl '\n'
using namespace std;
const int N=1e5+100;
int n,k,m,f[N],g,minn;
bool vis[N];
struct node
{
int a,b,c1,c2,id;
}e[N];
struct Ans
{
int p,q;
}ans[N];
bool cmp1(node n1,node n2)
{
return n1.c1>m;
m-=1;
for(int i=1;ie[i].a>>e[i].b>>e[i].c1>>e[i].c2;
e[i].id=i;
}
sort(e+1,e+m+1,cmp1);
kruskal1();
sort(e+1,e+m+1,cmp2);
kruskal2();
cout
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?