
最短路
xyc1719
努力会说谎,但努力不会是白费
展开
-
NOIP第二轮模拟 Day2 物流运输
【问题描述】物流公司要把一批货物从码头A运到码头B。由于货物量比较大,需要n天才能运完。货物运输过程中一般要转停好几个码头。物流公司通常会设计一条固定的运输路线,以便对整个运输过程实施严格的管理和跟踪。由于各种因素的存在,有的时候某个码头会无法装卸货物。这时候就必须修改运输路线,让货物能够按时到达目的地。但是修改路线是—件十分麻烦的事情,会带来额外的成本。因此物流公司希望能够订一个n天的运输计...原创 2018-07-08 15:04:15 · 352 阅读 · 0 评论 -
键盘 keyboard.cpp
【一句话题意】有多种操作1、删除一个字符,代价为12、加入一个字符,代价为13、复制字符串为原来的k倍,代价为2+2*k3、删除所有字符,代价为3现在有初始长度为x,求到长度n最小代价。【分析】题目稍作简化,请无视。显然删除所有字符只有在所有操作之前(反证法即可)。稍作思考即可发现,dp值的大小,存在极强的后效性。所以,改成最短路求dist[x],spfa玄学复杂度再加常数优化...原创 2018-11-07 13:43:26 · 402 阅读 · 0 评论 -
Walk
在比特镇一共有n 个街区,编号依次为1 到n,它们之间通过若干条单向道路连接。比特镇的交通系统极具特色,除了m 条单向道路之外,每个街区还有一个编码vali,不同街区可能拥有相同的编码。如果vali and valj = valj,即vali 在二进制下与valj 做与运算等于valj,那么也会存在一条额外的从i 出发到j 的单向道路。Byteasar 现在位于1 号街区,他想知道通过这些...原创 2018-10-27 15:37:37 · 211 阅读 · 1 评论 -
道路网(map)
【一句话题意】C 国的道路网络由m条双向线路组成,有n个城市在道路网络上。每条线路途经一些城市(可能会经过多次同一城市),最多有li个城市,位于线路上的两个城市a,b 通过i 号线路互相抵达的费用为w[i][a] + w[i][b]。现在有T个询问,询问两城市互相到达的最小费用。n<=1e5;m<=300;li,T,w[i][j]<=2000。【分析】此题暴力spfa可以骗到...原创 2018-10-24 19:54:35 · 517 阅读 · 1 评论 -
次短路学习笔记
原以为次短路算法会很麻烦,结果是随便乱搞(雾)。次短路算法可以拓宽图论时我们的思维和乱搞能力(雾),看一道引题。【引题】用一张图和一些边,求一列点之间的最短通路,要求初始点和终点必须都是集合中的点。如果不能从原图中有效地抽离出那些点的话,直接用floyd算法,复杂度就是O(n3)。但是如果建立一个超级源,从源点出发,向每一个点连一条边长为0的边,再求到每点之间的次短路就可以很好地解决这个问题...原创 2018-10-31 18:43:53 · 212 阅读 · 0 评论 -
规避(Evade)
【一句话题意】给你一个图源点s和汇点t,先求得最短路,再在最短路上,求在s和t同时出发,不相遇不重复的路径方案数。对1e9+7取模。【分析】考虑容斥原理,不考虑相遇,则方案数为{最短路条数}2。再排除在边上相遇的情况{f[u]*g[v]}2和在点上相遇的情况{f[u]*g[u]}2。f、g数组为从s(或t)走最短路出发到点i的方案数。细节上处理的关键在于从整张图中抽离出最短路再进行dp。【...原创 2018-10-25 20:43:41 · 208 阅读 · 0 评论 -
列队(line)
【一句话题意】给定一个一维坐标轴和n个点。再给定m个两点之间的关系。如果关系有矛盾,则输出impossible;如果没有矛盾则输出最左点和最右点的坐标差。【分析】这道题可以用带权并查集做,道理与之前的方块消除相同,这里不再赘述。另一方面这道题也可以用差分约束系统的弱化版解决。关于差分约束系统,本质是把几个不等式组的最值求解转化为图论问题。...原创 2018-10-25 20:18:00 · 187 阅读 · 0 评论 -
国庆七天测(五)马里奥
【一句话题意】给一个图,有一些可以空岛可以落脚。左右相邻的空岛之间移动不需要梯子,在同一列的空岛之间上下移动需要长度大于等于高度差的梯子。问从起点到终点至少需要多长的梯子。【算法一】鉴于拥有固定长度的梯子,跑一遍bfs确定是否可行的复杂度是O(n)的,且答案关于梯子长度单调。我们可以二分答案,二分梯子的长度再check。总复杂度为O(nlogn)【算法二】格子图的求到某个点的最小值,一般可以用...原创 2018-10-05 15:09:42 · 134 阅读 · 0 评论 -
省常高NOIP模拟 寻梦fantasy
【分析】将目之所及的题面抽象出一定的模型是每个优秀的OIer的基本能力。。。 先提供骗分50的优秀做法,显然的是要想使每个旅者可以回到自己的家乡,整一个交通网一定是由几个环组成的。题目要求在第k天回家,所以每个环的长度一定是k的约数。所以题目就改为,已知n和k求能否将n写成k的几个约数相加的形式(约数可以重复出现)。同时我们还可以发现所有的“约数”环可以拆成一定数量的“质数”环。...原创 2018-08-13 20:35:29 · 548 阅读 · 0 评论 -
机智的csy
【简要题面】现在你在数轴上的坐标为x,你需要到坐标y。现在有两种操作:1.先前或向后一步2.坐标*2现在求最小的操作数。数轴长度<=1e5。【分析】数轴不长所以可以随便乱搞,dp,bfs或者像我乱spfa都可以。【code】#include<cstdio>#include<cstring>#include<iostream>#incl...原创 2019-02-15 14:24:15 · 216 阅读 · 0 评论