dij
  • 2024-07-03考试题解
    20240703DSroundT1考虑区间子区间问题直接扫描线加历史版本和,考虑修改。现在扫到\(r\),线段树每个位置\(i\)维护的是\(i\)到\(r\)的区间\(lca\),这些\(lca\)的深度具有单调性,考虑直接二分一下位置,然后\(r\)扫到\(r+1\)时,深度大于\(lca(r,r+1)\)的\(
  • 2024-07-01Codeforces Round 918 G. Bicycles (二维最短路)
    G.Bicycles题意:在一个无向图里你要从1点到达n点,每条路的路径长度是该路的权值乘于你当前的慢度因子。而在每个点上我们都有一个慢度因子可以进行更换,问你到达n点所需要的最短时间。思路:我们很容易想到每次遇到更小的慢度因子我们就要更换,但因为存在你先去绕远路拿更小的慢
  • 2024-03-30【图论】3.30学习记录 k短路(A*算法)
    从最短路说起的k短路3.26看了最短路和次短路。我们发现次短路实际上就是把最短路给破坏掉然后跑最短路...那我想...是不是破坏(k-1)次就能得到k短路呢,很显然是的,但是复杂度比较高,(因为一次dij是O(nlogn)级别的,次短路的话最坏要跑m次当最短路有m条边的时候)那么k比较大的时候就
  • 2024-03-17旅行者
    新方法get法一:我们考虑最终的答案,一定是从某一个关键点\(A\)走到另一个关键点\(B\),那我们要找一种最短路径,保证中途经过两个关键点,而且能够覆盖所有的关键点对。所以我们考虑把其中一部分关键点作为起始点的下一个点,剩下的关键点作为终点的上一个点,于是我们建立两个虚点\(s\)
  • 2024-03-04Codeforces Round 930 (Div. 1) C dij 建图
    离较好的方法差一点。考虑到了可以按照枚举属性并按照当前属性从小到大排序,这样可以从一个点到大另一个点。设当前在排序序列中点为\(i\)当\(i\)走向\(k,i>=k\)需要支付\(c_k\)的代价。而\(i\)到\(k,i<k\)则需\(k-i+c_k\)的代价。则对于不同的\(i\)由于代价没有连续性,当时想
  • 2023-11-26AcWing 1126. 最小花费 (从终点方向求的dij -> 注意本题这么求就必须判断两点之间是否有边
    package算法提高课;importjava.util.Arrays;importjava.util.Scanner;publicclassacw1126{staticintn,m;staticint[][]g;staticdouble[]d;staticboolean[]st;privatestaticvoidinit(){g=newint[n+10][n+10];
  • 2023-11-26AcWing 1127. 香甜的黄油 (dij板子不能背太死, 需要知道含义灵活变通
    package算法提高课;importjava.util.Arrays;importjava.util.PriorityQueue;importjava.util.Scanner;publicclassacw1127{staticintn,p,c;staticint[]id;staticint[]h,e,ne,w;staticboolean[]st;staticint[]d;static
  • 2023-11-26AcWing 1129. 热浪 (dij板子题
    package算法提高课;importjava.util.Arrays;importjava.util.PriorityQueue;importjava.util.Scanner;publicclassacw1129{staticclassPIIimplementsComparable{intdis,tar;//tar表示我这条边的入弧,dis表示我这条边的距离publicP
  • 2023-11-26AcWing 1128. 信使 (dij板子题 + 求花费最大的那个点的花费
    package算法提高课;importjava.util.Arrays;importjava.util.PriorityQueue;importjava.util.Scanner;publicclassacw1128{staticintn,m;staticint[]h,e,w,ne;staticint[]d;staticboolean[]st;staticintidx;staticclas
  • 2023-11-15最短路树
    定义最短路树:以图上一个点为根节点,删去部分边后所形成的树,树的边权满足任意一点与根结点的路径长度等于图上两点的最短路径长度。求法可以采用dij求解。每次更新\(dis_v\)时,记录每个点最后一次用来更新的边,即为最短路树。核心代码如下,时间复杂度为dij的时间复杂度即\(
  • 2023-11-1501bfs
    今天写一个最短路题边权为\(0\)或\(1\),我说这不一眼\(dij\)么?结果题解区全部写的\(O(n+m)\)的\(01bfs\)。好家伙我居然一直不知道这么个东西,花了一个小时看会了,写一下原理。实现的方法很简单,就是一个双端队列,去\(nm\)的\(deque\),我有手,可以手写。在这里讲一下正确
  • 2023-10-25USACO 图论题 - from Luogu
    题单记录:P2984[USACO10FEB]ChocolateGivingS这题直接按题意只有50pts,复杂度\(O(B~\cdotM\logN)\),显然超时,然后我就想啊想,发现从s->1->t跑两遍dij和1->s(t)跑一遍dij是等效的,没啥用......我居然还想了好久,才发现根本不需要每次都跑,跑一次预处理就行了....
  • 2023-10-1623/10/15 模拟赛总结
    时间安排7:50-8:00看题,怎么一分都不会。8:00-9:00脑瘫了,A题随便跑个dij就能过我想了半天不会处理,最后还是猜出来可能要建个超级源点,没想到过了大样例。9:00-10:40B题貌似可做,手模了几组样例,好像会了。为了验证想法写了个爆搜又造了几个小数据,做法应该是正确的,直接
  • 2023-09-210-1 BFS
    前言:做这道题发现dij过不了,意识到自己不会0-1BFS,遂查,发现网上的解释很多都不清楚,oiwiki好像没讲,自己证明了一下。算法过程:用于求边权为\(0\)或\(1\)的图的最短路。方法就是把dij的单调队列换成一个deque,每次更新如果用边权为\(0\)的边,把新的点放到队首,反之放到队尾,
  • 2023-08-09题解 [SDOI2009] Elaxia的路线
    题目链接题意简述:求两条给定起点终点最短路的最长公共路径。首先最长公共路径一定是两条最短路的公共最长链的部分。至少一定在两条最短路上。考虑如何求出一条路径是否包含于一条最短路,只要路径\(x\rightarrowy\)满足:\[dis_{st\rightarrowx}+w_{x\rightarrowy}+dis_{y\r
  • 2023-03-12AcWing 第 94 场周赛 A B(最短路dij) C(最短路floyed)
    https://www.acwing.com/activity/content/competition/problem_list/2961/AcWing4870.装物品水题#include<bits/stdc++.h>usingnamespacestd;typedeflonglon
  • 2023-03-03hdu-1548
    搜索做着做着成最短路径了。。dij本层可以直接到达的层数距离为1否则为无穷大#include<stdio.h>#include<iostream>#include<math.h>#include<stdlib.h>#includ
  • 2023-01-12简单图论总结
    一些碎碎念最近复习了一些简单图论的知识,主要有floyd,spfa,拓扑排序,dij,差分等等。其实真正意义上的算法就是floyd和dij以及拓扑排序(spfa目前的应用场景仅限于有负边的最短路
  • 2022-12-15POJ 2249 : Remmarguts' Date
    #include<iostream>#include<queue>#include<vector>usingnamespacestd;constintN=100000*2+1;#definempmake_pair#definepiipair<int,int>
  • 2022-11-24警钟敲烂
    关同步流放freopen后面!关同步流之后别混用!别写fclosefreopen("game.in","r",stdin);freopen("game.out","w",stdout);cin.tie(0);ios::sync_with_stdio(false);
  • 2022-11-08dij模板[自用]
    今天在学计划书,发现自己以前编的板子丑丑长长的,改得舒服一点当作新的板子唔..#include<bits/stdc++.h>usingnamespacestd;constintmaxn=1e6;intcnt=0,n,m,s,dis[
  • 2022-11-04
    CF1051F给定一个张点数\(n\)边数\(m\)的图,\(m-n\le20\),\(T\)组询问求两点间最短路。那么搞出随便一个生成树,每次用\(O(m-n)\)条非树边两个端点更新答案。具体
  • 2022-10-21H - Delivery Route ——dij + scc + topo
    H-DeliveryRoute题意给你n个点的一张图,有x条无向边和y条有向边,每条边都有一个边权,但保证负边权不在环中,给你一个起始点,问你起始点每个点的最短路。因为有负边,所以dij
  • 2022-08-29[POJ1062]昂贵的聘礼题解
    [POJ1062]昂贵的聘礼题目链接【题目大意】现有n个物品,每个物品价格为vi,同时可以用其他物品减免价格(当然,你必须拥有该物品).问如何购买可以使得到物品1的花费最少.此外,还
  • 2022-08-191017 [USACO 2007 Ope B]Bronze Cow Party dij 板子题
    链接:https://ac.nowcoder.com/acm/contest/26077/1017来源:牛客网题目描述OnecowfromeachofNfarms(1<=N<=1000)convenientlynumber