这道题可以说是一个复活SPFA的题 因为数据比较小,SPFA也比较简单 那就复习(复读)一次SPFA吧 #include<iostream> #include<cstdio> #include<cmath> #include<queue> using namespace std; ; struct edge{ int next,to,dis; }; ]; ]; int dm,p,c,f,s; ]; edge e[]; ]; int size; ; void…
洛谷 1938  [USACO09NOV]找工就业Job Hunt 题目描述 Bessie is running out of money and is searching for jobs. Farmer John knows this and wants the cows to travel around so he has imposed a rule that his cows can only make D (1 <= D <= 1,000) dollars in a city be…
P1938 [USACO09NOV]找工就业Job Hunt给边赋予价值,入边的权值为D-Ti,然后从起点开始跑最长路,如果钱的总数超过了D*C,也就是一定有一个城市走了两遍,则有正环,则输出-1 #include<iostream> #include<cstdio> #include<queue> #include<algorithm> #include<cmath> #include<ctime> #include<set&…
题目描述 奶牛们正在找工作.农场主约翰知道后,鼓励奶牛们四处碰碰运气.而且他还加了一条要求:一头牛在一个城市最多只能赚D(1≤D≤1000)美元,然后它必须到另一座城市工作.当然,它可以在别处工作一阵子后又回到原来的城市再最多赚D美元.而且这样的往返次数没有限制. 城市间有P(1≤P≤150)条单向路径连接,共有C(2≤C≤220)座城市,编号从1到C.奶牛贝茜当前处在城市S(1≤S≤C).路径i从城市A_i到城市B_i(1≤A_i≤C,1≤B_i≤C),在路径上行走不用任何花费. 为了帮助贝茜…
题面 题解 将路径连边\((x, y, d)\) ,将航线连边\((x, y, d - w)\).其中线路是从\(x\)到\(y\),航线的费用为\(w\),\(d\)的含义如题面. 跑一遍\(SPFA\)最长路即可. 注意判断负环的情况,此时要输出\(-1\). 代码 #include <iostream> #include <cstdio> #include <cstdlib> #include <cstring> #include <algori…
原题链接:https://www.luogu.org/problem/show?pid=1938 这一道题有一个比较难的点就是,这一张图上,是点上有权.既然点上有权的话,我们就不好一下子使用最短路了. 我们想一下,我们从A走向B就一定是会在A与B处赚多钱是不是.这样的话,我们就不妨将点权转化到指向它的边上. 然后,对于本身带权的边,就用点权减去边原来带的权. 这样,我们以起点开始,起点的点权为起点的dist的值(这个很好理解的吧),跑一边最长路即可.这里我们需要判一下正环,就跟在最短路中SPFA…
洛谷P3412 仓鼠找\(Sugar\ II\)题解(期望+统计论?) 标签:题解 阅读体验:https://zybuluo.com/Junlier/note/1327573 原题链接:洛谷P3412 仓鼠找sugar II 好像只有洛谷有诶... 日常吐槽 这个期望题开发新思维方式还是比较好的... 毕竟还是很难想的...鸣谢\(fdfDarkfire\)教我做这个题! 题解来了 很容易发现答案就是\(\dfrac{\sum_{i=1}^{n}\sum_{i=1}^{n}dis[i][j]}{…
我现在爱死树链剖分了 题目 具体分析的话在洛谷blog里 这里只是想放一下改完之后的代码 多了一个son数组少了一个for 少了找size最大的儿子的for #include <cstdio> #include <cstring> #include <iostream> #include <algorithm> using namespace std; ; int n, q, head[N], cnt, dad[N], top[N], size[N], de…
传送门啦 这个题本质就是跑一边最长路,重点就是在怎么建图上. 我们可以把点权放到边权上面,即将每一个边的终点点权当做这个边的边权,这个题里就是将工钱 $ d $ 当做边权. 如果这一条边需要坐飞机才能到达,我们就可以将 $ d-w $ 当做边权进行建图,这个时候你发现了什么?? 你会发现 $ d-w $ 可能是个负值,所以我们跑最长路的时候就不能用 $ dijk $了. 最后我们就考虑怎么判断无限挣钱的情况了,那个情况下就是出现了环,可以不断走.所以我们开一个数组,记录一下每条最长路上点的个数,…
一头牛在一个城市最多只能赚D元,然后它必须到另一个城市工作.当然它可以在别处工作一阵子后,又回到原来的城市再最多赚D美元.而且这样的往返次数没有限制城市间有P条单向路径,共有C座城市,编号1~C,奶牛当前处在城市S,路径i从城市Ai到Bi,在路径上行走不用任何花费 私人飞机服务.这条服务有F条单向航线,每条航线是从城市ji飞到另一个城市ki,费用是ti.若奶牛手中没有现钱,可以用后来赚的钱来付机票钱奶牛可以选择在任何时候,在任何城市退休.若果在时间不做限制,奶牛总共可以赚多少钱?如果赚的钱也不会…