博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
P2619 [国家集训队2]Tree I
阅读量:6206 次
发布时间:2019-06-21

本文共 1048 字,大约阅读时间需要 3 分钟。

整体二分\(~~~~~~~~\)个鬼嘞

汗,此整体非彼整体2333

这是一道二分题不假。而是将整体的位置进行二分

偶然时看到这个题。

百思不得其解,然后网上一查。恍然大悟呀

大体就是说(使用克鲁斯卡尔)。如果选了多于need条白边,就将所有白边的边权加上一个数,如果小于need条,就将所有白边的权值减去一个数

然后发现,这是具有单调性的。所以我们二分这个减去或加上的数就可以。

不过为什么不直接贪心的选取need条白边呢?

钟梓俊

貌似网上的题解现在还没有给出具体的证明和数据,那么我就来发一下。
如果我们选了 needneed 条较小的白边,那么可能会影响黑边的选择。下面是一组可以卡掉直接选need条白边的数据,如下。

3 4 10 1 5 01 2 6 00 1 2 11 2 9 1
#include
#include
#include
#include
using std::sort;const int maxn=101000;struct node{ int p1,p2; int weight; int c; bool operator <(const node &a)const { if(weight==a.weight) return c
=N;}int main(){ scanf("%d%d%d",&v,&e,&N); for(int i=1;i<=e;i++) scanf("%d%d%d%d",&line[i].p1,&line[i].p2,&line[i].weight,&line[i].c); int l=-101,r=101,end; while(l<=r) { int mid=(l+r)/2; if(check(mid)) l=mid+1,end=mid; else r=mid-1; } check(end); printf("%d\n",ans-N*end);//最后减去}

转载于:https://www.cnblogs.com/Lance1ot/p/9502538.html

你可能感兴趣的文章
activiti 5.22的demo运行
查看>>
构建微服务:Spring boot 入门篇
查看>>
转:PHP应用性能优化指南
查看>>
Codeforces 835 F Roads in the Kingdom(树形dp)
查看>>
作业1---四则运算
查看>>
MVC3.0+DWZ探索
查看>>
小程序入口传参:关于带参数的小程序扫码进入的方法
查看>>
转载:ASP.NET在后台代码实现个功能,根据选择提示用户是否继续执行操作
查看>>
[Angularjs]锚点操作服务$anchorScroll
查看>>
静态代理设计与动态代理设计
查看>>
uva-10152-乌龟排序
查看>>
sqlmap手册
查看>>
将链表中m-n范围内的数进行倒序
查看>>
怎么发表博客,还不能显示在自己的博客首页上,这还不如玩单机!
查看>>
【翻译】Ext JS 4——Ajax和Rest代理处理服务器端一场和消息的方法
查看>>
OI基础系列之最大子数组问题
查看>>
Zookeeper概述、特点、数据模型
查看>>
Nginx_lua
查看>>
微信公众号自动回复加超链接最新可用实现方案
查看>>
error: stray '\343' in program 问题解决
查看>>