摘要:
迪杰斯特拉(Dijkstra)算法 迪杰斯特拉算法求得是原点到各个点之间的距离,不是任意两点间的距离,各点之间的权值不能为负,否则算法不适用 思路:数组dis:表示起点到各点的距离,maps表示各个点之间的距离,如果不相通初始化为无穷,vis表示从起点到该点的距离是否确定 将起点写入相应的数组中,d 阅读全文
摘要:
https://www.jisuanke.com/contest/7331?view=challenges G. Sheba's Amoebas 题意:给定一个图,求图里有几个封闭图形 思路:用DFS每次将一整块连通图标记,最后看标记了多少个 直接上代码: #include <bits/stdc++ 阅读全文
摘要:
Codeforces Round #625 (Div. 2, based on Technocup 2020 Final Round) 原题地址:https://codeforces.ml/contest/1321 A:Contest for Robots 题意:共有n场比赛,A,B两人参赛,0表示 阅读全文
摘要:
克鲁斯卡尔算法 适合于求边稀疏的网的最小生成树 思路: 将每条边的权值按从小到大的顺序排列,然后遍历,将边放回图中,如果此时的连线不能形成环,则继续,否则将此边丢弃,直到放进去n-1条边(n个点连通需要n-1条边)结束 用结构体存储顶点和边,sort排序 struct bian//存储边的信息 { 阅读全文
摘要:
并查集 并查集运用树的结构,通过判断每个点的最终双亲是否相同来判断是不是在一个集合中 一般步骤: 1.查找:查找一个点的最终双亲 递归 2.合并:如果两个相通点的双亲相同,说明已经在一个集合中,不需要合并,不同则将两个集合合并 例题:村村通 给定n个村庄和m条已经通的路,问还需要在休几条路 思路:将 阅读全文
摘要:
问题:在主串中寻找字串的位置 朴素的模式匹配算法 简单的说,就是对主串的每一个字符作为字串的开头,与要匹配的字符串进行匹配。对主串做大循环,每个字符开头做字串的长度的小循环,直到匹配成功或者全部遍历为止。 让我们来分析一下,最好的情况是什么?那就是第一开始就成功,时间时间复杂度为O(1) ;最坏呢, 阅读全文
摘要:
小菜鸡飘过https://www.jisuanke.com/contest/7321?view=challenges A: Beer Barrels 题意:给出四个整数:A,B,K,C,;A,B,C都是大于0的个位数,问在所有仅有A或者B组成的K位数中,数字C的个数是多少 思路: 1.先考虑特殊情况 阅读全文
摘要:
Codeforces Round #624 (Div.3) 题目地址:https://codeforces.ml/contest/1311 B题:WeirdSort 题意:给出含有n个元素的数组a,和m个元素的数组p,p中元素表示可调换(p=[3,2]表示a中下标为3和下标为3+1的元素可调换,2和 阅读全文