描述

给你一个无向带权连通图,每条边是黑色或白色。让你求一棵最小权的恰好有need条白色边的生成树。 题目保证有解。

输入

第一行V,E,need分别表示点数,边数和需要的白色边数。

接下来E行

每行s,t,c,col表示这边的端点(点从0开始标号),边权,颜色(0白色1黑色)

输出

一行表示所求生成树的边权和。

样例输入

2 2 1
0 1 1 1
0 1 2 0

样例输出

2

数据规模和约定

0%:V<=10

30%:V<=15

100%:V<=50000,E<=100000

所有数据边权为[1,100]中的正整数。

.......................

太困了!!!!!!

先贴个代码 明天再写思路

耶~

 #include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<cmath>
#define N 50010
using namespace std;
int n,m,k;
int first[N],cnt;
int a[N*],b[N*],c[N*],d[N*];
int fa[N],sum;
struct node
{
int u,v,w,nxt;
int col;
}e[N*];
void ade(int x,int y,int z,int c,int i)
{
e[i].u=x;
e[i].v=y;
e[i].w=z;
e[i].col=c;
}
bool cmp(const node &p,const node &q)
{
if(p.w!=q.w)
return p.w<q.w;
return p.col<q.col;
}
int la(int x)
{
if(fa[x]!=x) fa[x]=la(fa[x]);
return fa[x];
}
bool kruskal(int x)
{
for(int i=;i<n;i++) fa[i]=i;
for(int i=;i<=m;i++)
{
ade(a[i],b[i],c[i],d[i],i);
if(d[i]==) e[i].w+=x;
}
sort(e+,e+m+,cmp);
sum=;
int num=,ans=;
for(int i=;i<=m;++i)
{
if(la(e[i].u)!=la(e[i].v))
{
num++;
sum+=e[i].w;
fa[la(e[i].u)]=la(e[i].v);
if(e[i].col==) ans++;
}
if(num==n-) break;
}
if(ans>=k)
return true;
return false;
}
int main()
{
scanf("%d%d%d",&n,&m,&k);
for(int i=;i<=m;i++)
scanf("%d%d%d%d",&a[i],&b[i],&c[i],&d[i]);
int l=-,r=,mid;
while(l<r)
{
mid=(l+r+)>>;
if(kruskal(mid)) l=mid;
else r=mid-;
}
kruskal(l);
printf("%d",sum-k*l);
return ;
}

SDOJ 3696 Tree的更多相关文章

  1. [数据结构]——二叉树(Binary Tree)、二叉搜索树(Binary Search Tree)及其衍生算法

    二叉树(Binary Tree)是最简单的树形数据结构,然而却十分精妙.其衍生出各种算法,以致于占据了数据结构的半壁江山.STL中大名顶顶的关联容器--集合(set).映射(map)便是使用二叉树实现 ...

  2. SAP CRM 树视图(TREE VIEW)

    树视图可以用于表示数据的层次. 例如:SAP CRM中的组织结构数据可以表示为树视图. 在SAP CRM Web UI的术语当中,没有像表视图(table view)或者表单视图(form view) ...

  3. 无限分级和tree结构数据增删改【提供Demo下载】

    无限分级 很多时候我们不确定等级关系的层级,这个时候就需要用到无限分级了. 说到无限分级,又要扯到递归调用了.(据说频繁递归是很耗性能的),在此我们需要先设计好表机构,用来存储无限分级的数据.当然,以 ...

  4. 2000条你应知的WPF小姿势 基础篇<45-50 Visual Tree&Logic Tree 附带两个小工具>

    在正文开始之前需要介绍一个人:Sean Sexton. 来自明尼苏达双城的软件工程师.最为出色的是他维护了两个博客:2,000Things You Should Know About C# 和 2,0 ...

  5. Leetcode 笔记 110 - Balanced Binary Tree

    题目链接:Balanced Binary Tree | LeetCode OJ Given a binary tree, determine if it is height-balanced. For ...

  6. Leetcode 笔记 100 - Same Tree

    题目链接:Same Tree | LeetCode OJ Given two binary trees, write a function to check if they are equal or ...

  7. Leetcode 笔记 99 - Recover Binary Search Tree

    题目链接:Recover Binary Search Tree | LeetCode OJ Two elements of a binary search tree (BST) are swapped ...

  8. Leetcode 笔记 98 - Validate Binary Search Tree

    题目链接:Validate Binary Search Tree | LeetCode OJ Given a binary tree, determine if it is a valid binar ...

  9. Leetcode 笔记 101 - Symmetric Tree

    题目链接:Symmetric Tree | LeetCode OJ Given a binary tree, check whether it is a mirror of itself (ie, s ...

随机推荐

  1. 最具士兵突击实战类型的JavaScript

    JavaScript实战一书的基础知识部分帮助读者快速踏入JavaScript领域之门,jQuery部分帮助读者随心所欲地去工作,HTML5部分帮读者搭上时代的班车,Node.JS则可以让读者屹立在技 ...

  2. JAVA-WEB总结02

     1 什么是JavaBean?有何特征?    1)符合特定规则的类    2)JavaBean分二类: a)侠义的JavaBean .私有的字段(Field) .对私有字段提供存取方法(读写方法) ...

  3. 洛谷 P2014 选课

    题目描述 在大学里每个学生,为了达到一定的学分,必须从很多课程里选择一些课程来学习,在课程里有些课程必须在某些课程之前学习,如高等数学总是在其它课程之前学习.现在有N门功课,每门课有个学分,每门课有一 ...

  4. 【UWP】【新坑】Excel批量翻译工具(1)

    嗯……具体思路是这样的.使用的时候,你导入一个excel,直观地选择某些区域,选择语言点击翻译,就可以对多个单元格进行批量翻译,并且支持多种不同的导出格式(excel副本.txt文件……) 1,多种翻 ...

  5. python基础教程总结1——列表和元组

    1.序列 python含有6种内建序列——列表,元组,字符串,Unicode字符串,buffer对象,xrange对象 2.通用序列操作 2.1 索引 注:   input()根据用户输入变换相应的类 ...

  6. eclipse报错GC overhead limit exceed,卡顿

    在使用Eclipse的Build Project功能时,提示以下错误: An internal error occurred during: “Build Project”. GC overhead ...

  7. Linux curl 详解

    Linux下载工具Curl也是Linux下不错的命令行下载工具,小巧.高速,唯一的缺点是不支持多线程下载.以下是他的安装和功能. 安装 $ tar zxvf curl-7.14.0.tar.gz $ ...

  8. iOS应用架构谈part3 网络层设计方案

    前言 网络层在一个App中也是一个不可缺少的部分,工程师们在网络层能够发挥的空间也比较大.另外,苹果对网络请求部分已经做了很好的封装,业界的AFNetworking也被广泛使用.其它的ASIHttpR ...

  9. [bzoj]1003: [ZJOI2006]物流运输

    Description 物流公司要把一批货物从码头A运到码头B.由于货物量比较大,需要n天才能运完.货物运输过程中一般要转停好几个码头.物流公司通常会设计一条固定的运输路线,以便对整个运输过程实施严格 ...

  10. 初涉manacher

    一直没有打过……那么今天来找几道题打一打吧 manacher有什么用 字符串的题有一类是专门关于“回文”的.通常来说,这类问题要么和一些dp结合在一起:要么是考察对于manacher(或其他如回文自动 ...