自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 收藏
  • 关注

原创 RMQ—ST

原题链接在RMQ问题中,著名的ST算法就是倍增的产物。给定一个长度为N的序列A,ST算法能够在O(NlogN)的时间的预处理后,以O(1)的时间复杂度在线回答"数列A的下标在l~r之间的最大值是多少"#include <iostream>#include <algorithm>#include <cmath>using namespace std;...

2021-03-21 17:22:34 86

原创 剑指week4

1.二叉搜索树的后序遍历序列 class Solution {public: vector<int>seq; bool verifySequenceOfBST(vector<int> sequence) { seq=sequence; return dfs(0,seq.size()-1); } bool d...

2021-03-20 20:49:18 107

原创 剑指week3

1.反转链表迭代版本:class Solution {public: ListNode* reverseList(ListNode* head) { ListNode* pre=NULL,*cur=head; while(cur) { auto next=cur->next; cur...

2021-03-19 23:02:18 64

原创 剑指 week2

1.机器人的运动范围是数位和,裸BFS,用pair<int,int>存下标class Solution {public: int book[55][55]; int get_sum(pair<int,int>p) { int s=0,num1=p.first,num2=p.second; while(n...

2021-03-19 10:55:07 112

原创 背包问题求具体方案

原题链接#include <iostream>#include <algorithm>using namespace std;const int N=1010;int v[N],w[N];int n,m;int dp[N][N];int main(){ cin>>n>>m; for(int i=1;...

2021-03-18 19:53:50 47

原创 背包问题求方案数

原题链接#include <iostream>#include <algorithm>#include <cstring>using namespace std;const int N=1010;const int MOD=1e9+7;int dp[N],g[N];int n,v;int main(){ cin&gt...

2021-03-18 19:33:44 62

原创 状态机模型

1.大盗阿福原题链接方法一 闫氏dp分析法方法二 引入状态机模型动态规划 O(n)所谓的状态机,可以默认为搜索的方向数组,加到了动态规划上面.(个人理解)我们发现,这道题目一共就两种状态.不打劫打劫既然状态已经罗列好了,接下来就是状态之间的转移.①考虑,当前不打劫,能否转移到下一个不打劫.可以,因为这个商铺不打劫,那么下一个商铺当然也可...

2021-03-18 10:37:42 136

原创 正则表达式匹配

原题链接字符串匹配问题考虑LCS问题,对于i-1的状态,必须保证i>=1,且对于p[j]==' . ',都成立的匹配class Solution {public: bool isMatch(string s, string p) { int n=s.size(),m=p.size(); s=' '+s,p=' '+p; ...

2021-03-17 23:32:15 61

原创 剑指 week1

1.找出数组中重复的数字注意点:1.有一个出现在0~n-1之外的就要返回-12.空值返回-13.时间复杂度O(n),空间复杂度O(1)的解法class Solution {public: int duplicateInArray(vector<int>& nums) { int n=nums.size(); if(n==0)...

2021-03-16 19:43:37 90

原创 Bellman-Ford

BF算法的更新思想就是运用动态规划的思想,省去一维的i时刻注意点:1.选取n条边,也就是n条边的中转2.由于负权边的存在,因此最后若不存在的话,返回的不一定是INF,而是比它稍微小一点的很大的数3.备份数组保证更新上一次的值,而不会出现串联更新的情况4.bf算法可以用于判断是否存在负环#include <iostream>#include <algor...

2021-03-15 11:45:23 89

原创 有依赖的背包

原题链接关键:当递归处理u结点的子树返回时,进行分组背包的决策,各个子树中的结点可能非常多,可能有100多个结点,因此,如果以方案来划分最多有2^100种类别,所以要改用体积来划分从j表示当前除去v[u]的体积,j从[ m - v [u] , 0 ]的体积中枚举(类别),k选取体积是0,是1......是j(选一个)——>转化为分组背包问题转移方程为:dp[u][j]=max...

2021-03-14 22:05:26 78

原创 PAT 狼人杀

原题链接时隔一年拿到这道题,又是一脸懵逼。。。两个狼人都枚举过去一下就行,醉了呀先用a数组对全部人初始化好人,然后双指针枚举狼人,枚举完狼人后,再在该种情况下枚举自己说别人的话和别人的身份是否有矛盾,若有矛盾,说明自己在说谎,就加入lie中#include <iostream>#include <algorithm>#include <vector&gt...

2021-03-12 23:29:56 75

原创 20.并查集

合并集合#include <iostream>#include <algorithm>using namespace std;int n,m;const int N=1e5+10;int father[N];int find(int x)//查找x的祖先{ if(father[x]!=x) father[x]=find(father[...

2021-03-11 21:18:34 56

原创 LeetCode 动态规划L1

开二维数组dp[][] 且i与j下标都从1开始:vector<vector<int>>dp(len1+1,vector<int>(len2+1,0));53. 连续数组最大子序和dp[i]=max(dp[i-1]+nums[i],nums[i])Max=max(Max,dp[i])面试题 17.16. 按摩师状态转移考虑dp[i][0/1],对于第i...

2021-03-07 22:04:02 76

原创 单调队列优化多重背包

原题链接朴素多重背包问题:当外层循环到i时,dp[j]表示从前i种物品中选出若干个放入背包,体积之和为j时,价值之和最大值是多少for (int i = 1; i <= n; ++ i) { int v, w, s; cin >> v >> w >> s; for (int j = 0; j &...

2021-03-05 20:37:42 101

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除