NEUACM1132: Renew MST Quickly 增量最小生成树
2024-08-23 20:29:01
题目链接:http://acm.neu.edu.cn/hustoj/problem.php?id=1132
和UVa11354很类似
题意:
原先有一棵树,每次加一条边,看最小生成树大小;
这个和增量最小生成树,还是有一点点差别的,就是,正版增量最小生成树,是每次加入一条边后,删掉那个换里面的最大权,当然这里没有这个;
每次的找LCA,我猜可能LCA都会超时吧,没事过,也有可能可以,但是,因为是一直是之前的那棵树,还不如一次性算出来dis i 到 j 的最长路;
#include <bits/stdc++.h> using namespace std; const int maxn = + ; struct Edge
{
int from,to,dist;
}; vector<Edge> G[maxn];
int pa[maxn];
bool vis[maxn];
int dis[maxn][maxn]; void dfs(int u,int fa)
{
int d = G[u].size();
for(int i=; i<d; i++)
{
int v = G[u][i].to;
if(v!=fa)
dfs(v,pa[v]=u);
}
} void _dfs(int k,int cur,int cost) {
vis[cur] = ; int d = G[cur].size();
for(int i=;i<d;i++) {
if(!vis[G[cur][i].to]) {
dis[k][G[cur][i].to] = max(cost,max(dis[k][G[cur][i].to],G[cur][i].dist));
int v = G[cur][i].to;
_dfs(k,v,dis[k][v]);
}
} } int main()
{
int n;
int kase = ;
while(scanf("%d",&n)!=EOF)
{
printf("Test #%d\n",++kase); for(int i=;i<n;i++)
G[i].clear(); int sum = ;
for(int i=; i<n-; i++)
{
int u,v,d;
scanf("%d%d%d",&u,&v,&d);
u--;
v--;
sum+=d;
G[u].push_back((Edge)
{
u,v,d
});
G[v].push_back((Edge)
{
v,u,d
});
dis[u][v] = d;
dis[v][u] = d;
}
pa[] = -;
dfs(,-); for(int i=;i<n;i++) {
memset(vis,,sizeof(vis));
vis[i] = ;
_dfs(i,i,);
} int q;
scanf("%d",&q); while(q--)
{
memset(vis,,sizeof(vis));
int u,v,d;
scanf("%d%d%d",&u,&v,&d);
u--;
v--; int maxx = ; maxx = dis[u][v]; if(maxx>d)
printf("%d\n",sum-maxx+d);
else printf("%d\n",sum); }
} return ;
}
最新文章
- HDFS --访问
- 示例详解:UIScrollview 与 Autolayout 的那点事
- 你也可以用java的swing可以做出这么炫的mp3播放器_源码下载
- (7)nehe教程1 创建一个OpenGL窗口:
- 微软Hololens学院教程- Holograms 101: Introduction with Device【微软教程已经更新,本文是老版本】
- 如何在Win10中启用和关闭管理员账户?
- MongoDB 任意代码执行漏洞(CVE-2013-4142)
- C++----练习
- machine learn in python 第二章2.1.1
- asp.net读取CSV
- 多线程计算----pthread
- JS对select动态添加options操作(主流浏览器兼容)
- 音频增益响度分析 ReplayGain 附完整C代码示例
- ROS(indigo)机器人操作系统学习有趣丰富的Gazebo仿真示例evarobot
- java调用python程序以及向python程序传递参数
- Python开发【内置模块篇】collections
- window.location.reload();页面实现跳转和刷新
- 【托业】toeic托业必背核心词汇_修正版
- Apache无法正常启动(配置多个监听端口)
- noip第23课资料
热门文章
- python练习七十:图片生成
- 红米note_维修_开机键
- Oracle RAC集群搭建(一)-ASM共享存储卷
- 【3dsMax安装失败,如何卸载、安装3dMax 2015?】
- 移动端刷新组件XtnScroll--Angular4实现
- MYSQL系列-MYSQL基础增强(Myql函数)
- CMD 模块定义规范【转】
- 吴恩达《Machine Learning Yearning》总结(11-20章)
- 深入理解JavaScript系列(25):设计模式之单例模式
- [转]Newtonsoft.Json高级用法