2012 年国家集训队互测 Tree
时间:2019-08-26
本文章向大家介绍2012 年国家集训队互测 Tree,主要包括2012 年国家集训队互测 Tree使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
给你一个无向带权连通图,每条边是黑色或白色。让你求一棵最小权的恰好有 need条白色边的生成树。题目保证有解
感觉不是很懂这道题所谓用need代还cnt的做法
反正bzoj数据水怎么都是对的
#include<bits/stdc++.h> #define re return #define ll long long #define inc(i,l,r) for(int i=l;i<=r;++i) using namespace std; template<typename T>inline void rd(T&x) { char c;bool f=0; while((c=getchar())<'0'||c>'9')if(c=='-')f=1; x=c^48; while((c=getchar())>='0'&&c<='9')x=x*10+(c^48); if(f)x=-x; } const int maxn=50005,maxm=100005; int n,m,sum,need,ans,hd[maxn],fa[maxn]; struct node{ int fr,to,val,flag; bool operator<(node a)const { if(val==a.val)re flag<a.flag; re val<a.val; } }e[maxm]; inline int find(int x) { re x==fa[x]?x:fa[x]=find(fa[x]); } inline int vivi(int x) { inc(i,1,m)if(!e[i].flag)e[i].val+=x; inc(i,1,n)fa[i]=i; sort(e+1,e+m+1); int cnt=0,tot=0; sum=0; inc(i,1,m) { int f1=find(e[i].fr),f2=find(e[i].to); if(f1!=f2) { ++tot; sum+=e[i].val; if(!e[i].flag) ++cnt; fa[f1]=f2; if(tot==n-1)break; } } inc(i,1,m) if(!e[i].flag) e[i].val-=x; if(cnt<need)re 0; ans=sum-cnt*x;
//但是如果是need的话,不是与原来在边权和不等吗 re 1; } int main() { freopen("in.txt","r",stdin); rd(n),rd(m);rd(need); inc(i,1,m) { rd(e[i].fr);rd(e[i].to); ++e[i].fr;++e[i].to; rd(e[i].val);rd(e[i].flag); } int l=-100,r=100; while(l<=r) { int mid=(l+r)>>1; if(vivi(mid)) l=mid+1; else r=mid-1; } printf("%d",ans); re 0; }
原文地址:https://www.cnblogs.com/lsyyy/p/11411532.html
- 23.Django基础
- SpringBoot开发案例之整合Quartz注入Service
- 谈谈代码质量问题
- SpringCloud config配置文件加密
- SpringCloud服务比较快的下线配置
- 洛谷P2870 [USACO07DEC]最佳牛线,黄金Best Cow Line, Gold
- 24.Django路由规则
- 洛谷P2852 [USACO06DEC]牛奶模式Milk Patterns
- 25.django Model
- 26.Django模板语言和分页
- 28.Django cookie
- 29.Django session
- 30.Django CSRF 中间件
- 31.Django缓存和信号
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Docker-Compose搭建mysql、redis、zookeeper、rabbitmq、consul、elasticsearch环境
- MDK更改配色方案
- Apache通过多端口配置多站点
- FatFs-目录下文件扫描
- Python之Bilibili自动更新邮件提醒并任务栏图标「完整代码」
- STC15频率产生器(粗调+微调+数码管显示)完整代码
- PID算法原理、调整规律及代码
- GIT——分布式版本控制系统
- 如何在 PHP 中使用和管理 Cookie
- 玩转 PhpStorm 系列(九):代码调试篇(上)
- 在 PHP 中使用和管理 Session
- STC51单片机中断与定时器配置参考
- 玩转 PhpStorm 系列(十):代码调试篇(下)
- STM32字符串转整数
- Java常用设计模式--代理模式(Proxy Pattern)