博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
codeforces 14D
阅读量:4519 次
发布时间:2019-06-08

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

去掉一条边 剩下的2棵树的直径 乘积  求最大

列举每条边  2次bfs求直径  其实总共是  4*(n-1)  次bfs

总体时间  n-1*n;

#include
#include
#include
#include
#include
#include
using namespace std;#define LL long long#define MAXN 210#define inf 1000000000int cnt;int head[MAXN];struct edge{ int fr,to,next;}edg[MAXN*4];int x1,x2;void add(int u,int v){ edg[cnt].fr=u; edg[cnt].to=v; edg[cnt].next=head[u]; head[u]=cnt++;}struct node{ int fa,to,w;};queue
q1;node bfs1(int q){ node a; a.to=q; a.w=0; a.fa=0; q1.push(a); node b; b.w=0; b.to=0; while(!q1.empty()) { node now; now =q1.front(); q1.pop(); if(b.w< now.w) { b.w = now.w; b.to = now.to; } for(int i=head[now.to];i!=-1;i=edg[i].next) { node b; b.to=edg[i].to; if(now.fa==b.to) continue; if(now.to==x1&&b.to==x2||now.to==x2&&b.to==x1) continue; b.w=now.w+1; b.fa=now.to; q1.push(b); // printf("%d %d\n",b.w,b.to); } } // printf("\n\n"); return b;}int main(){ int n; while(scanf("%d",&n)!=EOF) { cnt=0; memset(head,-1,sizeof(head)); for(int i=1;i
View Code

 

转载于:https://www.cnblogs.com/cherryMJY/p/6528005.html

你可能感兴趣的文章
抽象类实例
查看>>
react context prop-types
查看>>
Java之路——Java初接触
查看>>
2018.12.27学习JavaScript
查看>>
Cocoa编程开发者手册
查看>>
C++框架_之Qt的开始部分_概述_安装_创建项目_快捷键等一系列注意细节
查看>>
html5基础学习
查看>>
理工之 A+B Problem III
查看>>
SalesForce自定义按钮(javascript执行),点击按钮更新Filed
查看>>
Android中ViewPager实现滑动条及与Fragment结合的实例教程
查看>>
组织过程资产与事业环境因素
查看>>
学习和思考的要点
查看>>
java问题解读,String类为什么是final的
查看>>
JavaWeb项目用浏览器打开网页出现Session Error提示的解决办法
查看>>
软件工程第一次作业
查看>>
(41)zabbix监控api接口性能及可用性 天气预报api为例
查看>>
【Android 界面效果24】Intent和PendingIntent的区别
查看>>
node学习之搭建服务器并加装静态资源
查看>>
android 按menu键解锁功能的开关
查看>>
wpf 自定义窗口,最大化时覆盖任务栏解决方案
查看>>