BZOJ 3363: [Usaco2004 Feb]Cow Marathon 奶牛马拉松
Description
给你一个图,两个点至多有一条路径,求最长的一条路径. \(n \leqslant 4\times 10^4\)
Sol
DFS?DP?
这就是一棵树,方向什么的都没用...
然后记录一下到这个点的最大值和次大值更新答案即可.
Code
/**************************************************************
Problem: 3363
User: BeiYu
Language: C++
Result: Accepted
Time:116 ms
Memory:5572 kb
****************************************************************/ #include<cstdio>
#include<vector>
#include<utility>
#include<iostream>
using namespace std; #define mpr make_pair
typedef pair< int,int > pr;
const int N = 40005; int n,m,ans;
vector<pr> g[N];
int mx1[N],mx2[N],b[N]; inline int in(int x=0,char ch=getchar()){ while(ch>'9' || ch<'0') ch=getchar();
while(ch>='0' && ch<='9') x=(x<<3)+(x<<1)+ch-'0',ch=getchar();return x; }
void DFS(int u,int fa){
b[u]=1;
for(int i=0,v,d;i<g[u].size();i++) if((v=g[u][i].first)!=fa){
DFS(v,u),d=g[u][i].second;
if(mx1[v]+d>mx1[u]) mx2[u]=mx1[u],mx1[u]=mx1[v]+d;
else if(mx1[v]+d>mx2[u]) mx2[u]=mx1[v]+d;
}ans=max(ans,mx1[u]+mx2[u]);
}
int main(){
n=in(),m=in();
for(int i=1,u,v,w;i<=m;i++){
u=in(),v=in(),w=in();
g[u].push_back(mpr(v,w)),g[v].push_back(mpr(u,w));
}
for(int i=1;i<=n;i++) if(!b[i]) DFS(i,-1);
cout<<ans<<endl;
return 0;
}
BZOJ 3363: [Usaco2004 Feb]Cow Marathon 奶牛马拉松的更多相关文章
- 树的直径 【bzoj3363】[Usaco2004 Feb]Cow Marathon 奶牛马拉松
3363: [Usaco2004 Feb]Cow Marathon 奶牛马拉松 Description 最近美国过度肥胖非常普遍,农夫约翰为了让他的奶牛多做运动,举办了奶牛马拉松.马拉 松路线要尽 ...
- 树的直径【bzoj3363】 [Usaco2004 Feb]Cow Marathon 奶牛马拉松
Description 最近美国过度肥胖非常普遍,农夫约翰为了让他的奶牛多做运动,举办了奶牛马拉松.马拉松路线要尽量长,所以,告诉你农场的地图(该地图的描述与上题一致),请帮助约翰寻找两个最远农场间的 ...
- BZOJ 3363 POJ 1985 Cow Marathon 树的直径
题目大意:给出一棵树.求两点间的最长距离. 思路:裸地树的直径.两次BFS,第一次随便找一个点宽搜.然后用上次宽搜时最远的点在宽搜.得到的最长距离就是树的直径. CODE: #include < ...
- BZOJ 1631: [Usaco2007 Feb]Cow Party( 最短路 )
这道题和蔡大神出的今年STOI初中组的第二题几乎一模一样... 先跑一遍最短路 , 再把所有边反向 , 再跑一遍 , 所有点两次相加的最大值即为answer --------------------- ...
- BZOJ 1631: [Usaco2007 Feb]Cow Party
题目 1631: [Usaco2007 Feb]Cow Party Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 491 Solved: 362[Sub ...
- BZOJ 3367: [Usaco2004 Feb]The Big Game 球赛( dp )
dp(i)表示前i个人最少坐多少辆车, dp(i) = min(dp(j) + 1, dp(i)) (0 <= j < i 且 (i, j]的人能坐在一辆车上) 时间复杂度O(n²) -- ...
- BZOJ 3446: [Usaco2014 Feb]Cow Decathlon( 状压dp )
水状压dp. dp(x, s) = max{ dp( x - 1, s - {h} ) } + 奖励(假如拿到的) (h∈s). 时间复杂度O(n * 2^n) ------------------- ...
- Bzoj 1648: [Usaco2006 Dec]Cow Picnic 奶牛野餐 深搜,bitset
1648: [Usaco2006 Dec]Cow Picnic 奶牛野餐 Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 554 Solved: 346[ ...
- Bzoj 1612: [Usaco2008 Jan]Cow Contest奶牛的比赛 传递闭包,bitset
1612: [Usaco2008 Jan]Cow Contest奶牛的比赛 Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 891 Solved: 590 ...
随机推荐
- JSP简单标签带属性开发
1.开发带属性的标签,标签处理器类中属性要有相应setter方法,符合javaBean规范 2.tld文件中进行相应属性标签配置 属性配置相关说明如下图 3.简单标签带属性的例子 1).通过设置标签属 ...
- RandomAccessFile类
File类只是针对文件本身进行操作,而如果要对文件内容进行操作,则可以使用RandomAccessFile类,此类属于随机读取类,可以随机地读取一个文件中指定位置的数据. //============ ...
- 11 Clever Methods of Overfitting and how to avoid them
11 Clever Methods of Overfitting and how to avoid them Overfitting is the bane of Data Science in th ...
- 入门:PHP:hello world!
<?php echo 'hello'."\n"." world!"."good night!";//2016.09.18 22:57? ...
- Python 系列:1 - Tuples and Sequences
5.3 Tuples and Sequences We saw that lists and strings have many common properties, e.g., indexing a ...
- ecshop 调用收货地址
html {insert_scripts files='region.js,utils.js'} <script type="text/javascript"> reg ...
- ecshop show_message
格式lib_main.php show_message(内容, array(返回列表,继续编辑), array(连接地址一,链接地址二, 'info',false); true:自动跳转 输出: fu ...
- JavaWeb学习总结(一)——JavaWeb开发入门
http://www.cnblogs.com/xdp-gacl/p/3729033.html 只为成功找方法,不为失败找借口! JavaWeb学习总结(一)--JavaWeb开发入门 一.基本概念 1 ...
- RabbitMQ安装后不能运行 Error: unable to connect to node nodedown
本地安装RabbitMQ后总是不能正常的使用.. 命令行输入 rabbitMQctl Status 报下边的错 Error: unable to connect to node 'rabbit@YO ...
- zookeeper原理(转)
ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,它包含一个简单的原语集,分布式应用程序可以基于它实现同步服务,配置维护和命名服务等.Zookeeper是hadoop的一个子项目,其 ...