DIS
  • 2024-09-14P4568 [JLOI2011] 飞行路线
    P4568[JLOI2011]飞行路线考虑跑多层图,每层图连条边权为0的边,跑dijkstra即可。#include<bits/stdc++.h>usingnamespacestd;#definelllonglongconstintN=1e7+10;intn,m,k,s,t;intcnt;inthead[N];structss{ intto,w,next;}a[N];voidadd(intu,int
  • 2024-09-14[JOI2018]定期券 (Commuter Pass)
    \(\mathtt{TAG}\):最短路,DP,拓扑排序题意给定一个\(n\)个点\(m\)条边的无向图,边有边权。给定两对点\(s_1,t_1\)和\(s_2,t_2\)。你可以选定\(s_1\)到\(t_1\)的一条最短路径,使得这些边的边权变为\(0\),要求操作之后\(s_2\)到\(t_2\)的最短路长度最小。First.\(
  • 2024-09-13P7730 [JDWOI-1] 蜀道难
    感觉每一步都挺自然的。首先连续加减让我们不难想到差分,每次给\(d_i\)加一或减一,每次给\(d_{i+l}\)减一或加一。然后要求单调不降就是要求每个\(d_i\)大于等于\(0\)。然后注意到我们每次操作相当于是\(i\)向\(i+l\)贡献\(1\)或者\(i+l\)向\(i\)贡献\(1\),结合
  • 2024-09-13浅谈分层图
    分层图讲真的…感觉有点像那么一点点的种类并查集简单来说,就是把一个图分成很多层,然后对图进行一些处理比较模板一点的东西就是直接在分层图上跑最短路,这个时候就涉及到了很多决策,每一个决策能进行一些特殊的操作,比如让某条边免费(边权为0,不是把边切掉),让某条边花费减半之
  • 2024-09-12今日打卡:洛谷:P1248 加工生产调度/P1251 餐巾计划问题
    昨天虽然打了卡,但是因为时间问题,所以没做题,今天补回来。今天的运势也真服了,我今天没出过门,也不会装逼啊!还有,我不开电脑怎么做题啊?请教问题也找不到人啊!P1248加工生产调度:#include<bits/stdc++.h>usingnamespacestd;structnumber{ intnum,ind; boolsign; boolo
  • 2024-09-11dijkstra and spfa
    spfastructNode{ intw,to,nxt;}edg[maxn];inthead[maxn],tot;voidadd_edge(intu,intw,intv){ edg[++tot].nxt=head[u];edg[tot].to=v; edg[tot].w=w;head[u]=tot;}boolvis[maxn];intcnt[maxn],dis[maxn];boolspfa(intn,ints){ memset(dis,0x3f,sizeof
  • 2024-09-11
    [NFLSPC#6]等差数列考虑枚举公差\(d\),如何求得最少题数\(m\)?贪心的想,我们希望的等差数列是一条直线,而增加的数最少就相当于让直线最低且任意点不低过原序列。扫一遍序列,动态维护当先最少需要增加的数\(f\)和当前末项大小\(g\),如果下一项\(a_i<g-d\),那么直接把下一项增加
  • 2024-09-11[ABC250Ex] Trespassing Takahashi
    感觉是很厉害的结论题。题意给你一个带权无向连通简单图\(G=(V,E),|V|=n,|E|=m\)。钦定编号\(1\simk\)的点为关键点。给定\(q\)次询问,每次询问给出\(x,y,t\),表示你需要回答是否存在一条路径,使得从\(x\)出发到\(y\)的路径上相邻两个关键点的距离都不超过\(t\)。保证
  • 2024-09-10虚树+树形dp
    虚树实际上是一颗浓缩子树;使用虚树的题目大部分具有查询的点有限,同时虚树构建的信息符合规则;做虚树的题目:步骤为先想出原树的暴力求解做法,然后构建虚树同时向其中添加有用信息(比如边权);虚树的构建过程:虚树的构建大致有两种,但是两种方式都与dfs序有关;首先解释为什么与dfs序有
  • 2024-09-10题解:[USACO07DEC] Sightseeing Cows G
    洛谷P2868题目大意有个nnn个点,mmm条边的有向图,点有点权,边有边
  • 2024-09-09【小项目】python贪吃蛇小游戏设计
    引入pygame库添加pygame库,在cmd中输入以下代码,进行安装。如果输入pipinstallpygame出现以下报错,可以尝试在前面加入python3-m。python3-mpipinstallpygame贪吃蛇代码importpygameimporttimeimportrandom#初始化Pygamepygame.init()#定义颜色white=
  • 2024-09-08【算法笔记】多源最短路问题——Floyd算法
    0.前言在图中,如果要求任意两点间的距离,则可以使用Floyd(\(\mathcalO(N^3)\)
  • 2024-09-08【算法笔记】单源最短路问题——Dijkstra算法(无优化/优先队列/set优化)
    0.前言Dijkstra算法可在\(\mathcalO(m\logm)\)或\(\mathcalO(m\logn)\)的时间内求解无负权单源最短路问题。本文中,我们将详细介绍算法的原理、实现,以及常用的两种优化。另外,Dijkstra算法也不要乱用,比如说多源的最短路,用Dijkstra求解的复杂度只有\(\mathcalO(nm\logm)\),但
  • 2024-09-08树上圆理论
    设\(f(u,r)=\{v|dis(u,v)\ler\}\),可以将其视作以\(u\)为圆心,\(r\)为半径的圆。有若干与欧几里得空间的圆相同的性质。设点集\(S\)的直径长度为\(d(S)\),中点为\(m(S)\),设\(c(S)=f(m(S),\dfrac{d(S)}{2})\),可以视作\(S\)的最小覆盖圆。Lemma:若点集\(S
  • 2024-09-07最短路
    Bellman-Ford这是一种暴力求解单源最短路的方法。如果图不存在负环,那么任意两点之间的最短路一定不经过相同的点。假设\(A\)到\(E\)的最短路径为\(A\toB\toC\toD\toE\),那么\(A\toB\toC\toD\)一定为\(A\)到\(C\)的最短路。记\(dis_{x}\)表示起点\(s
  • 2024-09-07AtCoder Beginner Contest 369
    A-369(abc369A)题目大意给定两个数\(a,b\),问有多少个整数\(x\),使得\(a,b,x\)经过某种排列后成为等差数列,解题思路就三种情况:\(xab\),\(axb\),\(abx\),三种情况都求出来,然后放到set去重即为答案。中间的情况要判断是否是实数。神奇的代码#include<bits/stdc++.h>using
  • 2024-09-06CF1715E. Long Way Home -决策单调性、图
    link:https://codeforces.com/contest/1715/problem/E有\(n\)座城市,城市间有\(m\)条双向道路,通过第\(i\)条道路需要花费\(w_i\)的时间,任意两个城市之间都有航班,乘坐城市\(u\)和\(v\)之间的航班需要花费\((u-v)^2\)的时间。现在请对于任意城市\(i(1\lei\len)\)
  • 2024-09-06题解:AT_abc369_e [ABC369E] Sightseeing Tour 详细版
    题目大意给定一个NNN个点,MMM条边的无向图。其中边有边权。有
  • 2024-09-06洛谷 P6419 [COCI2014-2015#1] Kamp
    洛谷P6419[COCI2014-2015#1]Kamp题意一颗树\(n\)个点,\(n-1\)条边,经过每条边都要花费一定的时间,任意两个点都是联通的。有\(K\)个人(分布在\(K\)个不同的点)要集中到一个点举行聚会。聚会结束后需要一辆车从举行聚会的这点出发,把这\(K\)个人分别送回去。请你回答,对
  • 2024-09-05【转载】P1399 [NOI2013] 快餐店 题解
    作者%%%%%%NightTide%%%%%%题目大意求一棵基环树的重心。即一个点,使得树上到其距离最长的点到其的距离最短。注意,这个点不一定是一个节点,可以在树上的任意位置。输出树上到其距离最长的点到其的距离。或者说求基环树最短的直径?(大雾解题思路显然,这颗基环树的直径只有两
  • 2024-09-05[USACO13OPEN] Photo G 题解
    前言题目链接:洛谷。题意简述一个长度为\(n\)的序列,有一些位置染了色。现给出\(m\)条限制,第\(i\)条限制为\(l_i\simr_i\)中有且仅有一个位置染色。求出满足这\(m\)中条件,染色位置个数最多为多少。\(n\leq2\times10^5\),\(m\leq10^5\)。题目分析方法\(1\):差
  • 2024-09-04[POI2014] RAJ-Rally 题解
    前言题目链接:Hydro&bzoj;黑暗爆炸;洛谷。题意简述DAG求删点后最长路的最小值。\(n\leq5\times10^5\),\(m\leq10^6\)。题目分析其实对于删点/边加查询最长/短路的套路是有的。比如:故乡的梦、桥。本题也类似。我们考虑,如果删除的边不在原来最长路上,那么删之后的
  • 2024-09-04洛谷 P5340 大中锋的游乐场
    洛谷P5340大中锋的游乐场题意给出一张\(n\)个点\(m\)条边的图,每个点有一个点权\(1\)或\(-1\)。给出点\(s,t\),求出\((s,t)\)间满足以下条件的最短路。任意时刻,走过的路径上点权和均\(\in[-k,k]\)。思路分层图最短路。\(dis_{i,j}\)表示走到\(i\),点权和为\(j
  • 2024-09-0251nod 3010 The Captain
    暴力构图为\(O(n^2)\)无法实现,但可以发现有些边无用,可以先按x排序,第i号点与第i+1号点一定最近,所以建一条边,y坐标同理,然后跑最短路即可自动选择\(min(|x_1-x_2|,|y_1-y_2|)\)#include<bits/stdc++.h>usingnamespacestd;constlonglongINF=0x3f3f3f3f;constint
  • 2024-09-01浅谈分层图
    #用途-解决一些在带权图中,最多$k$次优惠**一条边权**#基本步骤1.分成$k+1$层,从$0$好开始,每层图与原图一样。其中第$i$层图是用了$i$次优惠到达的图。2.对于所有边,若在第$i$层图中,那么就新连一条边从$u$指向第$n+1$层图的$v$,权值为**优惠的值**。3.