bzoj4331: JSOI2012 越狱老虎桥
Description
Input
Output
#include<cstdio>
#define G *++ptr
const int N=,inf=0x3f3f3f3f;
char buf[N*],*ptr=buf-;
int _(){
int x=,c=G;
while(c<)c=G;
while(c>)x=x*+c-,c=G;
return x;
}
bool ei[N*];
int n,m,es[N*],enx[N*],ev[N*],e0[N],e1[N],ep=,id[N],idp;
void ae(int*e,int a,int b,int c){
es[ep]=b;enx[ep]=e[a];ev[ep]=c;e[a]=ep++;
es[ep]=a;enx[ep]=e[b];ev[ep]=c;e[b]=ep++;
}
int dfn[N],low[N],tk=;
void mins(int&a,int b){if(a>b)a=b;}
void maxs(int&a,int b){if(a<b)a=b;}
int min(int a,int b){return a<b?a:b;}
int max(int a,int b){return a>b?a:b;}
void tj(int w){
dfn[w]=low[w]=++tk;
for(int i=e0[w];i;i=enx[i]){
int u=es[i];
if(!u)continue;
if(!dfn[u]){
es[i^]=;
tj(u);
es[i^]=w;
mins(low[w],low[u]);
if(low[u]>dfn[w])ei[i>>]=;
}else mins(low[w],dfn[u]);
}
}
void f1(int w){
id[w]=idp;
dfn[w]=;
for(int i=e0[w];i;i=enx[i]){
int u=es[i];
if(!ei[i>>]&&dfn[u])f1(u);
}
}
int v0[N],v02[N],v1[N],v2[N],vu[N],v,ans=;
void f2(int w,int pa){
v0[w]=v02[w]=v1[w]=v2[w]=vu[w]=inf;
for(int i=e1[w];i;i=enx[i]){
int u=es[i];
if(u==pa)continue;
f2(u,w);
v=min(v0[u],ev[i]);
v2[w]=max(min(v2[w],v),min(v1[w],v1[u]));
v1[w]=max(min(v1[w],v),min(v0[w],v1[u]));
if(v<=v0[w])v02[w]=v0[w],v0[w]=v;
else mins(v02[w],v);
}
}
void f3(int w,int pa){
v=min(vu[w],v2[w]);
maxs(ans,v);
for(int i=e1[w];i;i=enx[i]){
int u=es[i];
if(u==pa)continue;
vu[u]=min(min(ev[i],vu[w]),min(v0[u],ev[i])==v0[w]?v02[w]:v0[w]);
f3(u,w);
}
}
int main(){
fread(buf,,sizeof(buf),stdin)[buf]=;
n=_();m=_();
for(int i=,a,b,c;i<m;++i){
a=_();b=_();c=_();
if(a==b)continue;
ae(e0,a,b,c);
}
tj();for(int i=;i<=n;++i)if(dfn[i]){
++idp;
f1(i);
}
for(int i=;i<ep;i+=)if(ei[i>>])ae(e1,id[es[i]],id[es[i^]],ev[i]);
f2(,);
f3(,);
if(ans==inf)ans=-;
printf("%d",ans);
return ;
}
bzoj4331: JSOI2012 越狱老虎桥的更多相关文章
- 【BZOJ4331】[JSOI2012]越狱老虎桥(Tarjan)
[BZOJ4331][JSOI2012]越狱老虎桥(Tarjan) 题面 BZOJ 然而BZOJ是权限题QwQ 洛谷 题解 先求出所有割边,那么显然要割掉一条割边. 如果要加入一条边,那么显然是把若干 ...
- luogu P5234 [JSOI2012]越狱老虎桥
传送门 题目要求割掉一条边后使得图不连通,那么可以使用tarjan算法求出所有的割边,然后把边双缩成点,就能得到一棵树,现在问题是在加入一条边的情况下,割掉最小的一条边使得图不连通,割掉的这条边权值最 ...
- 洛谷P5234 越狱老虎桥 [JSOI2012] tarjan
正解:tarjan+贪心(?并不会总结是什么方法QAQ,,, 解题报告: 传送门! 这题是真的题意杀,,,我我我要不是之前知道题目大意了我怕是怎么看都看不懂这是个什么意思昂QAQ 所以先说下题目大意好 ...
- bzoj AC倒序
Search GO 说明:输入题号直接进入相应题目,如需搜索含数字的题目,请在关键词前加单引号 Problem ID Title Source AC Submit Y 1000 A+B Problem ...
- 越狱Season 1-Episode 19: The Key
Season 1, Episode 19: The Key -Kellerman: WeusedtohaveaGreatDane, Dane: 丹麦大狗 我们以前有一只大丹犬 bigandwild. ...
- [Swust OJ 567]--老虎在不在笼子里(凸包问题)
题目链接:http://acm.swust.edu.cn/problem/567/ Time limit(ms): 1000 Memory limit(kb): 65535 一只老虎自从看了< ...
- BZOJ 3504: [Cqoi2014]危桥 [最大流]
3504: [Cqoi2014]危桥 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 1407 Solved: 703[Submit][Status] ...
- 【转】 iOS9.2-iOS9.3.3越狱插件清单
以下是iOS9.3.3越狱插件清单 原文地址:http://bbs.feng.com/read-htm-tid-10668605.html 序列 支持与否 插件名称 兼容版本 支持设备 1 是 20 ...
- hub,桥,交换机,路由器的区别
1.四种设备在网络中的物理位置 如下图 2.这四种设备的本质 这四种设备,不管怎样,他们都是进行包的转发,只不过转发的行为有些不一样而已 3.逐一介绍 对于hub,一个包过来后,直接将包转发到其他口. ...
随机推荐
- .Net web 关于表单标题
今天跟以前同事学到一个好东西,就是后台web界面表单标题展示的一个方法,新学到的一个方法...赶紧分享一下 在model 属性上加 [DisplayName("标题"), Req ...
- /etc/apt/sources.list.d/ros-latest.list' permission denied
换为英文的' sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu trusty main" > /etc/apt ...
- vue-router详解
对于单页应用,官方提供了vue-router进行路由跳转的处理,本篇主要也是基于其官方文档写作而成. 安装 基于传统,我更喜欢采用npm包的形式进行安装. npm install vue-router ...
- Java Redis的Pipeline管道,批量操作,节省大量网络往返时间 & Redis批量读写(hmset&hgetall) 使用Pipeline
一般情况下,大家使用redis去put/get都是先拿到一个jedis实例,然后操作,然后释放连接:这种模式是 请求-响应,请求-响应 这种模式,下一次请求必须得等第一次请求响应回来之后才可以,因为r ...
- c# lambda表达式学习
1. 普通绑定: public void button1_Click(object sender, EventArgs e) { MessageBox.Show("ok"); } ...
- 远程使用tomcat8的首页的管理工具
1.在%Tomcat_Home%/conf/Catalina/localhost中新建manager.xml,内容如下 <Context privileged="true" ...
- js做小数运算精度问题
当js做小数运算时存在bug,大概是因为二进制和十进制转换之间的关系. bug如图 解决方案 1.运算结果后,乘以100再除以100.网上推荐这种方法但是乘以1000再除以1000依然存在精度问题 2 ...
- Assert 类
Assert 类 使用 true/false 命题验证单元测试中的条件. 继承层次结构 System.Object Microsoft.VisualStudio.TestTools.Uni ...
- Linux vi编辑器的使用
vi是Visual Interface的简称,它是Linux/Unix下的文本编辑器,例如你想编辑文件english.txt,则你可以在终端下输入 vi english.txt命令,然后就进入了编辑界 ...
- @ModelAttribute运用详解(二十一)
@ModelAttribute使用详解 1.@ModelAttribute注释方法 例子(1),(2),(3)类似,被@ModelAttribute注释的方法会在此controller每个方法 ...