tree(陈立杰)[国家集训队2012]
【大意】
给你一个无向带权连通图,每条边是黑色或白色。让你求一棵最小权的恰好有need条白色边的生成树。
题目保证有解。
【输入格式】
接下来E行
每行s,t,c,col表示这边的端点(点从0开始标号),边权,颜色(0白色1黑色)。
【输出格式】
【数据规模和约定】
1,2,3:V<=15
0,..,19:V<=50000,E<=100000
所有数据边权为[1,100]中的正整数。
【样例输入】
0 1 1 1
0 1 2 0
【样例输出】
#include<iostream> #include<cstdio> #include<cstring> #include<algorithm> using namespace std; const int sj=50005; int f[sj],e1,n,m,nee,a1,a2,a3,a4,zj,yj,mid; struct B {int v,w,u,bh,cr; }b[sj<<1]; void add(int x,int y,int z,int e) {e1++;b[e1].v=y;b[e1].w=z;b[e1].cr=z;b[e1].u=x;b[e1].bh=e; } int comp(const B&x,const B&y) {return (x.cr==y.cr)?(x.bh<y.bh):(x.cr<y.cr); } int find(int x) {if(f[x]==-1) return x;f[x]=find(f[x]);return f[x]; } void hb(int x,int y) {x=find(x),y=find(y);f[x]=y; } void init() {scanf("%d%d%d",&n,&m,&nee);for(int i=1;i<=m;i++){scanf("%d%d%d%d",&a1,&a2,&a3,&a4);add(a1,a2,a3,a4);} } bool kl() {a1=a2=a4=0;sort(b+1,b+m+1,comp);for(int i=1;i<=m;i++)if(find(b[i].u)!=find(b[i].v)){if(b[i].bh==0) a1++;a4++;a2+=b[i].cr;hb(b[i].u,b[i].v);if(a4==n-1) break;}return a1>=nee; } int main() {init();zj=-105,yj=105;while(zj<=yj){mid=(zj+yj)>>1;memset(f,-1,sizeof(f));for(int i=1;i<=m;i++)if(b[i].bh==0)b[i].cr=b[i].w+mid;if(kl()) zj=mid+1,a3=a2-nee*mid;else yj=mid-1;}printf("%d",a3);return 0; }
tree
转载于:https://www.cnblogs.com/moyiii-/p/7354714.html
tree(陈立杰)[国家集训队2012]相关推荐
- [国家集训队2012]tree(陈立杰)
1764. [国家集训队2012]tree(陈立杰) ★★★ 输入文件: nt2012_tree.in 输出文件: nt2012_tree.out 简单对比 时间限制:3 s 内存限 ...
- [国家集训队2012]电子对撞机nbsp;解题…
国家集训队2012 电子对撞机(刘洪轩)解题报告 题目: 见http://cogs.pro/cogs/problem/problem.php?pid=1784 Q国最近科学技术不断进步,经过不懈努力, ...
- BZOJ2654: tree(陈立杰)
2654: tree(陈立杰) Time Limit: 30 Sec Memory Limit: 512 MB Submit: 229 Solved: 91 [Submit][Status] De ...
- [国家集训队2012]middle(陈立杰)
我是萌萌的传送门 我是另一个萌萌的传送门 脑残错误毁一下午-- 其实题解早就烂大街了,然而很久之前我只知道是二分答案+主席树却想不出来这俩玩意儿怎么一块儿用的--今天又翻了几篇题解才恍然大悟,是把权值 ...
- cogs1799 [国家集训队2012]tree(伍一鸣)
LCT裸题 注意打标记之间的影响就是了 这个膜数不会爆unsigned int #include<cstdio> #include<cstdlib> #include<a ...
- 数据结构(动态树):[国家集训队2012]tree(伍一鸣)
[问题描述] 一棵n个点的树,每个点的初始权值为1.对于这棵树有q个操作,每个操作为以下四种操作之一: + u v c:将u到v的路径上的点的权值都加上自然数c: - u1 v1 u2 v2:将树中原 ...
- 最小生成树 tree(陈立杰)
问题 D: tree 时间限制: 3 Sec 内存限制: 512 MB 提交: 24 解决: 7 [提交][状态][讨论版] 题目描述 给你一个无向带权连通图,每条边是黑色或白色.让你求一棵最小权的恰 ...
- BZOJ2568 [国家集训队2012]比特集合
Description 比特集合是一种抽象数据类型(Abstract Data Type) ,其包含一个集合S,并支持如下几种操作: INS M : 将元素 M 插入到集合S中: DEL M : 将集 ...
- [BZOJ 2654]tree(陈立杰)
Description 给你一个无向带权连通图,每条边是黑色或白色.让你求一棵最小权的恰好有need条白色边的生成树. 题目保证有解. Input 第一行V,E,need分别表示点数,边数和需要的白色 ...
最新文章
- Java常见的面试算法题:实现两个线程交替打印1到100的数
- CentOS系统Yum源配置
- 广数系统u盘支持什么格式_支持转换50+种三维软件格式还能减面还是免费的,什么工具这么强大?...
- matlab vdp1000,第四章 MATLAB的数学运算.ppt
- 利用xml+xsl给客户机添加超级管理帐户!
- Spring 2.0.1 与 BEA WebLogic Server 9.2 的集成
- 记录一段让我吐血的代码
- 【图像处理】——Python实现图像特征提取BP神经网络实现图像二分类
- (二叉树存储+递归遍历)Binary Tree Traversals
- Nginx支持WebSocket反向代理-学习小结
- av_seek_frame() 定位为什么不准呢?
- STM32工作笔记0030---编写跑马灯实验--使用库函数
- Python中的各种if语句(if条件判断、if...else、if...elif...else、if...else嵌套)
- excel表格如何设置双面打印的方法
- python123课后作业嵩天_MOOC嵩天《Python语言程序设计》Python123课后作业4
- 小学生C++趣味编程教材
- windows下安装nvm教程,nvm use 乱码解决
- [一直更新中]WerKeyTom的口胡
- mysql 水平分区_MySQL水平分区,垂直分区
- AI之NLP:2020年6月21日北京智源大会演讲分享之15:15-15:40黄萱菁教授《自然语言处理中的表示学习》
热门文章
- CodePen的使用教程 codepen如何存放自己的代码 codepen存放的代码如何引入到网站里 codepen引入博客页面
- AI 教父离职谷歌 ,只为畅谈 AI 之危
- 微软将向OpenAI投资10亿美元 同谷歌和亚马逊展开竞争
- 支付宝:账号不存在,或对方关闭了“通过手机号或邮箱找到我“隐私开关!怎么解决?
- 新手入门百度地图开发的(0,0)坐标问题
- IEEE VR 2022
- 化学方程式系列( 试 制 品)(挑战密室)
- 日志易饶琛琳分享:AI 助力日志中心智能化运营
- 《我抽完一条烟也没想明白哪错》(1)DOS命令实现自动关机
- predis 操作大全