05 2019 档案
摘要:题意:表面乍一看output是输出最小值,但仔细研究可以发现,这个最小值是从点1到所有点所花时间的最小值,其实是访问这些节点中的最大值,因为只有访问了最长时间的那个点才算访问了所有点。所以求最短路之后求最大值。
阅读全文
摘要:题意:给m条路(S,E,T)代表点S、E之间双向边权重为T,紧接着给W个虫洞(S,E,T)代表S到E的有向边可以回到T秒前即权重为-T,问能不能通过虫洞看到看到初始的自己,即能不能回到初始点所在的时间点之前,即求是否存在负环。 代码细节就不多赘述了,spfa
阅读全文
摘要:题意:有m个货币交换点,每个点只能有两种货币的互相交换,且要给佣金,给定一开始的货币类型和货币数量,问若干次交换后能否让钱增加。 思路:spfa求最长路,判断是否存在正环,如果存在则钱可以在环中一直增加,最后的钱肯定也是增加的。
阅读全文
摘要:非常感谢kuangbin专题啊,这道题一开始模拟邻接表做的,反向边不好处理,邻接矩阵的话舒服多了。 题意:给n头牛和m条有向边,每头牛1~n编号,求所有牛中到x编号去的最短路+回来的最短路的最大值。
阅读全文
摘要:题意: 求1到n路径上最大的最小值。 原因:样例输入 1 3 3 1 2 3 1 3 4 2 3 5 1-2最多可以运输3,2-3可最多以运输5,但是2的来源只有3,所以路径1-2-3上能运输的量为3 1-3可以运输4,所以结果就是4。 可以很明显的看出一条路径上能够运输的最大值与该路径上最小的边相
阅读全文
摘要:这道题最后没过,估计是痛失省一了,现在来补一下,当时思路是对的应该是代码出了问题导致样例没过最后nc的除了2,一直WA 题意: 给一张联通图,有两个导航系统,其中一个系统认为第i条边的权值是Pi,另一个系统认为是Qi(给定Pi和Qi),然后每个导航系统对于每条边i有个判定 其中一个是hero(vi)
阅读全文
摘要:这题和今年南昌邀请网络预选赛M题很像啊,不过主串数量不是一个了 都是在主串中判断子串是不是属于主串的一个子序列
阅读全文
摘要:思路: 最小生成树是瓶颈生成树,瓶颈生成树满足最大边最小。 数据量较小,所以只需要通过Kruskal,将边按权值从小到大排序,枚举最小边求最小生成树,时间复杂度为O( nm(logm) )
阅读全文
摘要:题意: 给定n个点的有向图问,问能不能找到若干个环,让所有点都在环中,且让权值最小,KM算法求最佳完美匹配,只不过是最小值,所以把边权变成负值,输出时将ans取负即可 这道题是在VJ上交的
阅读全文
摘要:#include using namespace std; const int maxn = 5e4 + 5; const int inf = 0x3f3f3f3f; int n, head[maxn], dis[maxn], cnt; struct node{ int to, w, next; } ed[maxn*4]; //数组开2*maxn超时,开大一点 inlin...
阅读全文
摘要:次小生成树模板,别忘了判定不存在最小生成树的情况
阅读全文
摘要:题目大意是找最小的m使得前m段中每一段的最大值相加严格大于k,每一段长度为[n/m](n/m向下取整,多余的后半部分部分n-m*[n/m]不要) 先给一段我一开始的思路,和网上许多题解思路一样,但其实是有错误的。二分答案+RMQ (RMQ部分也可以用线段树) #include <bits/stdc+
阅读全文
摘要:之前用字符串hash+二分过了,今天刚看了manacher拿来试一试。 这manacher也快太多了%%%
阅读全文
摘要:1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 8 typedef long long ll; 9 const int maxn = 100 + 5; 10 const int inf = 0x3f3f3f3f; 11 int n, m, ans; 12 ...
阅读全文
摘要:1 #include 2 #include 3 #include 4 using namespace std; 5 6 typedef long long ll; 7 const int maxn = 1e5 + 5; 8 const int maxm = 5e5 + 5; 9 int dfn[maxn], low[maxn], head[maxn]; 10 ll an...
阅读全文