洛谷P5234 越狱老虎桥 [JSOI2012] tarjan
正解:tarjan+贪心(?并不会总结是什么方法QAQ,,,
解题报告:
传送门!
这题是真的题意杀,,,我我我要不是之前知道题目大意了我怕是怎么看都看不懂这是个什么意思昂QAQ
所以先说下题目大意好了QAQ
大概就是说有一个连通图,现加入一条边,这条边可以连接任意两个点麻油影响,然后现在要断开一条边使得这个图变得不连通,求保证不管怎么加边都满足不连通的边的最小值是多少
首先想到肯定是要把桥断开,然后把边双缩成一个点,这里不港,具体看代码就可可
然后仔细思考一下可以发现把边双缩成点之后形成的会是一棵树
可以发现就从小到大看当前边和之前的边484构成一条链就好,如果是,就说明不可以,不是就说明就是这条边辣!
顺便判断是否构链这里可以二分答案balabala的,有点麻烦明天具体说QAQ
#include<bits/stdc++.h>
using namespace std;
#define il inline
#define ll long long
#define rg register
#define gc getchar()
#define t(i) edge[i].to
#define rp(i,x,y) for(rg int i=x;i<=y;++i)
#define my(i,x,y) for(rg int i=x;i>=y;--i)
#define e(i,x) for(rg int i=head[x];i;i=edge[i].nxt)
+,M=+;
int n,m,ed_cnt,nw_ed_cnt,fa[N],dfn[N],low[N],head[N],tim,in[N];
];
struct eded{int fr,to,wei;}nwed[N];
il int read()
{
rg ;rg ;
'))ch=gc;
;
)+(x<<)+(ch^'),ch=gc;
return y?x:-x;
}
il void ad(int x,int y,int z){edge[++ed_cnt]=(ed){x,head[y],z};head[y]=ed_cnt;}
void tarjan(int x,int fat)
{
fa[x]=fat;dfn[x]=low[x]=++tim;
e(i,x){if(t(i)^fat)if(!dfn[t(i)])tarjan(t(i),x),low[x]=min(low[x],low[t(i)]);else low[i]=min(low[i],dfn[t(i)]);}
}
il bool cmp(eded gd,eded gs){return gd.wei<gs.wei;}
int main()
{
freopen("yylhq.in","r",stdin);freopen("yylhq.out","w",stdout);
n=read();m=read();rp(i,,m){int x=read(),y=read(),z=read();ad(x,y,z);ad(y,x,z);}
rp(i,,n));
rp(i,,n)e(j,i)if(low[i]==dfn[i] && dfn[t(j)]>dfn[i])nwed[++nw_ed_cnt]=(eded){i,t(j),edge[j].wei};
sort(nwed+,nwed++nw_ed_cnt,cmp);
rp(i,,nw_ed_cnt){++ || );}
printf("-1\n");
;
}
/*
www我判断是WA的,,,有时间再改趴我懒得打辣明天放正确代码趴QAQ
*/
然后我不想打二分答案了,,,所以我我我先mk趴QAQ
洛谷P5234 越狱老虎桥 [JSOI2012] tarjan的更多相关文章
- 【BZOJ4331】[JSOI2012]越狱老虎桥(Tarjan)
[BZOJ4331][JSOI2012]越狱老虎桥(Tarjan) 题面 BZOJ 然而BZOJ是权限题QwQ 洛谷 题解 先求出所有割边,那么显然要割掉一条割边. 如果要加入一条边,那么显然是把若干 ...
- 洛谷 P2194 HXY烧情侣【Tarjan缩点】 分析+题解代码
洛谷 P2194 HXY烧情侣[Tarjan缩点] 分析+题解代码 题目描述: 众所周知,HXY已经加入了FFF团.现在她要开始喜(sang)闻(xin)乐(bing)见(kuang)地烧情侣了.这里 ...
- 洛谷1726 上白泽慧音 tarjan模板
题目描述 在幻想乡,上白泽慧音是以知识渊博闻名的老师.春雪异变导致人间之里的很多道路都被大雪堵塞,使有的学生不能顺利地到达慧音所在的村庄.因此慧音决定换一个能够聚集最多人数的村庄作为新的教学地点.人间 ...
- 【洛谷5008】逛庭院(Tarjan,贪心)
[洛谷5008]逛庭院(Tarjan,贪心) 题面 洛谷 题解 如果图是一个\(DAG\),我们可以任意选择若干个不是入度为\(0\)的点,然后把它们按照拓扑序倒序删掉,不难证明这样一定是合法的. 现 ...
- bzoj4331: JSOI2012 越狱老虎桥
Description 这里,是美丽的南京:这里,是秀美的进香河:这里是安逸的老虎桥. 如果说进香河的美,美在其秀美的风光,倒不如说是美在了那惬意的南京古典小巷式生活.如果说进香河的迷人,在其淳朴的 ...
- 洛谷3388 【模板】割点 tarjan算法
题目描述 给出一个n个点,m条边的无向图,求图的割点. 关于割点 在无向连通图中,如果将其中一个点以及所有连接该点的边去掉,图就不再连通,那么这个点就叫做割点(cut vertex / articul ...
- luogu P5234 [JSOI2012]越狱老虎桥
传送门 题目要求割掉一条边后使得图不连通,那么可以使用tarjan算法求出所有的割边,然后把边双缩成点,就能得到一棵树,现在问题是在加入一条边的情况下,割掉最小的一条边使得图不连通,割掉的这条边权值最 ...
- 洛谷P4645 [COCI2006-2007 Contest#7] BICIKLI [Tarjan,拓扑排序]
题目传送门 BICIKLI 题意翻译 给定一个有向图,n个点,m条边.请问,1号点到2号点有多少条路径?如果有无限多条,输出inf,如果有限,输出答案模10^9的余数. 两点之间可能有重边,需要看成是 ...
- 洛谷P2812 校园网络[数据加强版] [Tarjan]
题目传送门 校园网络 题目背景 浙江省的几所OI强校的神犇发明了一种人工智能,可以AC任何题目,所以他们决定建立一个网络来共享这个软件.但是由于他们脑力劳动过多导致全身无力身体被♂掏♂空,他们来找你帮 ...
随机推荐
- Serializable接口
Serializable这个接口起啥作用呢?? 这个接口没有提供任何方法,我们实现它有什么意义呢? Serializable接口是启用其序列化功能的接口.Serializable接口中没有任何方法,一 ...
- EasyUI Form提交后json数据IE上需要下载(转)
EasyUI Form提交后json数据IE上需要下载(转) 在使用EasyUI的form中的submit方法时,返回json在IE中变成提示下载的问题,代码如下: $('#fileForm'). ...
- c#.net基础
值类型:值类型的实例一般在线程的栈上分配 引用类型:引用类型的实例在线程的托管堆上分配 引用类型变量的Equals比较的是二者的引用地址而不是内部的值,值类型变量的Equals方法比较的是二者的值. ...
- R语言使用RMySQL连接及读写Mysql数据库
简单说下安装过程,一般不会有问题,重点是RMySQL的使用方式. 系统环境说明 Redhat系统:Linux 460-42.6.32-431.29.2.el6.x86_64 系统编码:LANG=zh_ ...
- svn-checkout后,循环遍历查找包含某字符串的文件
这里涉及几个知识点: 1.安装subversion,不多说了,网上有教程 2.循环遍历所有目录层级,找相 关文件 #!/bin/bash #########svn checkout项目出来 svn_d ...
- Go指南练习_循环与函数
源地址 https://tour.go-zh.org/flowcontrol/8 一.练习题描述 为了练习函数与循环,我们来实现一个平方根函数:用牛顿法实现平方根函数. 计算机通常使用循环来计算 x ...
- 【03月04日】A股滚动市盈率PE历史新低排名
2010年01月01日 到 2018年12月05日 之间,滚动市盈率历史新低排名. 上市三年以上的公司,2018年12月05日市盈率在300以下的公司. 1 - 青松股份(SZ300132) - 历史 ...
- .bat文件调用java类的main方法
此处记录一个小例子,备用,说不定哪天写小工具时会用到. @echo on set JAVA_HOME=C:\Program Files\Java\jdk1.6.0_43 set classpath=. ...
- sklearn数据预处理
一.standardization 之所以标准化的原因是,如果数据集中的某个特征的取值不服从标准的正太分布,则性能就会变得很差 ①函数scale提供了快速和简单的方法在单个数组形式的数据集上来执行标准 ...
- 计算字符串相似度算法—Levenshtein
什么是Levenshtein Levenshtein 距离,又称编辑距离,指的是两个字符串之间,由一个转换成另一个所需的最少编辑操作次数.许可的编辑操作包括将一个字符替换成另一个字符,插入一个字符,删 ...