博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
bzoj3669【NOI2014】魔法森林
阅读量:4344 次
发布时间:2019-06-07

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

一道最短路好题……
开始和讨论了一下,喻队长一眼切:枚举ai的上界MAX,每次把ai小于等于MAX的边加到图里,以bi为边权跑最短路。
但是,这样做是O(ai*m)的,妥妥TLE,于是我们想了一些鬼畜剪枝优化常数,然并卵……喻队长身先士卒(比喻队长带头,走在蒟蒻前面),交了一波,TLE60分。
后来,看了题解才发现这道题是SPFA的玄学用途——维护动态加边的图的最短路!只此一家,绝无仅有!走过路过千万不要错过!于是我们就可以不用打LCT来维护一棵最小生成树(正解)。
具体做法其实很简单,每次距离数组不清零,只把新加入的边的两端点入队。这样的复杂度就是O(m)的了(也许吧,毕竟SPFA太玄学了),因为最后加起来相当于对原图跑一遍SPFA。 %%%%%%%%%%%%%%%
1     #include 
2 #include
3 #include
4 #include
5 #include
6 #include
7 using namespace std; 8 const int N=50005,M=100005,INF=50005; 9 int gi(){10 int str=0;char ch=getchar();11 while(ch>'9' || ch<'0')ch=getchar();12 while(ch>='0' && ch<='9')str=(str<<1)+(str<<3)+ch-48,ch=getchar();13 return str;14 }15 int n,m;16 struct node{17 int x,y,dis,dist;18 bool operator <(const node &pp)const{19 return dis
f[x]?a[i].dis:f[x];41 if(tmp
喻队长的小常数代码,比某蒟蒻快一倍

转载于:https://www.cnblogs.com/y142857/p/7214678.html

你可能感兴趣的文章
Azure云服务托管恶意软件
查看>>
My安卓知识6--关于把项目从androidstudio工程转成eclipse工程并导成jar包
查看>>
旧的起点(开园说明)
查看>>
生产订单“生产线别”带入生产入库单
查看>>
crontab导致磁盘空间满问题的解决
查看>>
自定义滚动条
查看>>
APP开发手记01(app与web的困惑)
查看>>
笛卡尔遗传规划Cartesian Genetic Programming (CGP)简单理解(1)
查看>>
初识前端作业1
查看>>
ffmpeg格式转换命令
查看>>
万方数据知识平台 TFHpple +Xpath解析
查看>>
Hive实现oracle的Minus函数
查看>>
秒杀多线程第四篇 一个经典的多线程同步问题
查看>>
RocketMQ配置
查看>>
蚂蚁金服井贤栋:用技术联手金融机构,形成服务小微的生态合力
查看>>
端口号大全
查看>>
机器学习基石笔记2——在何时可以使用机器学习(2)
查看>>
POJ 3740 Easy Finding (DLX模板)
查看>>
MySQL 处理重复数据
查看>>
关于typedef的用法总结(转)
查看>>