算法学习训练
文章平均质量分 58
基础算法
JunLal
这个作者很懒,什么都没留下…
展开
-
Leetcode 第 254 场周赛(8.15)
1.5843. 作为子字符串出现在单词中的字符串数目思路:观察题目是字符串匹配。发现测试点都不大。100左右,应该没必要kmp暴力就行。step1 遍历patternsstep2 vvvv即使是简单题用暴力的方法还是没有一次过。第一次的时候没有考虑到已经匹配到子串之后word就不用继续遍历的情况了。后面进行修改完后的代码就过了ok那里就直接break掉。这样word就不继续搜索了。class Solution {public: int numOfStrings(vector&原创 2022-05-11 13:40:25 · 118 阅读 · 0 评论 -
【算法】刷题回顾
刷题回顾指南目录刷题回顾指南一、dfs1.1n的全排列1.2 马走日二、bfs三、动态规划四、最短路五、最小生成树六、并查集七、数学一、dfs1.1n的全排列// n的全排列 #include<bits/stdc++.h>using namespace std;bool vis[10005];int n;int cnt;int route[10005];void dfs(int u) { // 结束条件 if(n == u) { // 到了第u层 cnt++;原创 2022-05-11 13:39:20 · 182 阅读 · 0 评论 -
【算法】01背包及其优化详解
[01背包]一、问题描述:在NNN个物品,背包容量为CCC的情况下,每个物品的价值为viv_ivi,重量为wiw_iwi,每个物品选择装入背包(1)或者选择不装入背包(0)。然后选择物品装入背包使得背包的总价值最大。二、状态表示及其转换f[i][j]表示前iii件物品,背包容量为jjj的情况下的最大价值故f[0][0~C]就是什么物品都没选,背包容量为0~C的情况下的最大价值,故而为0。f[i][j]由两种状态转为过来,①选第iii件物品f[i][j] = f[i-1][j - v[i]]原创 2022-02-12 23:48:29 · 432 阅读 · 1 评论 -
【并查集】P1551 亲戚(洛谷)
题目背景若某个家族人员过于庞大,要判断两个是否是亲戚,确实还很不容易,现在给出某个亲戚关系图,求任意给出的两个人是否具有亲戚关系。题目描述规定:xx 和 yy 是亲戚,yy 和 zz 是亲戚,那么 xx 和 zz 也是亲戚。如果 xx,yy 是亲戚,那么 xx 的亲戚都是 yy 的亲戚,yy 的亲戚也都是 xx 的亲戚。输入格式第一行:三个整数 n,m,pn,m,p,(n,m,p \le 5000n,m,p≤5000),分别表示有 nn 个人,mm 个亲戚关系,询问 pp 对亲戚关系。输出格式原创 2022-02-04 20:46:02 · 328 阅读 · 0 评论 -
Dfs算法训练
模板n的全排列#include<iostream>using namespace std;int n;int route[100]; //保存路径的数组bool visited[100]; //保存是否经过的数组void dfs(int u) //u就是当前位于搜索的第几层{ if(u==n) //结束判断 { for(int i=0;i<n;i++) { cout<<rou原创 2021-03-20 14:55:26 · 176 阅读 · 0 评论