赫he
赫he
全部文章
分类
题解(3)
归档
标签
去牛客网
登录
/
注册
赫he的博客
全部文章
(共53篇)
c++题解 | #小红取数#
dp[i][j] 表示前i个数字中取出的数的和,并且对k取余为j的最大值,答案就是dp[n][0],表示对k取余为0的最大和。 整个dp初始化为-1: memset(dp, -1, sizeof(dp)) dp[0][0]初始化为0,表示前0个数取出的数的和是k的倍数的最大值为0; 1、 不取a[...
2023-07-27
0
388
题解 | #字母收集#
#include <cstdio> #include <iostream> #include <queue> using namespace std; const int N = 510; int dp[N][N]; int n, m; int main() {...
2023-07-24
0
260
c++ 题解 | #【模板】二维差分#
二维差分 假设a是输入的原矩阵,目标是给定矩形范围,在O(1)时间内将给定矩形范围子矩阵所有值都加上c。可以利用差分的方式。假设b是a的二维差分矩阵,那重点是:a是b的前缀和矩阵。即a[i][j]是b矩阵左上角(1,1)到右下角(i,j)的子矩阵和。 那类似于一维差分,当在差分矩阵b上进行加c,对...
2023-07-24
0
224
c++题解 | #【模板】差分#
#include <cstdio> #include <iostream> using namespace std; const int N = 1e5 + 10; typedef long long LL ; LL a[N]; LL d[N]; int n, m; int...
2023-07-21
0
210
c++ 题解 | #abb#
cnt['c']记录字符'c'出现的次数 dp['c']记录以字符'c'结尾的长度为2的子序列的个数,就是"*c"这种形式,两个字符是不一样的,就是叠词的前两个字符。 遍历s中的每个字符,假设i=k时,遇到字符x,res = res + dp[x],就是s[0~k-1]中的答案...
2023-07-21
0
488
很简单:c++题解 | #【模板】二维前缀和#
求二维前缀和矩阵 公式:mat[i][j] = mat[i-1][j]+mat[i][j-1]-mat[i-1][j-1] + 求解给定矩形范围的数字和 公式:ans(x1,y1,x2,y2) = mat[x2][y2]-mat[x2][y1-1]-mat[x1-1][y2]+mat[x1-1][...
2023-07-20
1
304
c++题解 | #【模板】前缀和#
很简单,求数组前缀和数组,ans = pres[r]-pres[l-1],下标从1开始,很方便。 #include <cstdio> #include <iostream> using namespace std; const int N = 1e5+10; typedef ...
2023-07-19
0
169
c++ 题解 | #买卖股票的最好时机(四)#
和买卖股票的最好时机(三)思路类似: dp[n][k*2]中的dp[i][kk]: 当kk==0、2、4、6...,是第1、2、3、4...次持有状态 当kk==1、3、5、7...,是第1、2、3、4...次不持有状态 初始化: 所有的第一天的 任何次 持有状态的收益值都是 -p[i],所有的第一...
2023-07-19
0
334
c++题解 | #买卖股票的最好时机(三)#
只能交易两次,还是从状态出发 dp[i][0]:第i天第一次持有 dp[i][1]: 第i天第一次未持有/卖出 dp[i][2]:第i天第二次持有 dp[i][3]:第i天第二次未持有/卖出 状态转移: dp[i][0] = max(dp[i-1][0]"维持状态,和前一天一样处于第一次持...
2023-07-19
0
235
题解 | #买卖股票的最好时机(二)#
动态规划 dp[N][2]: dp[i][0]表示第i天不持有股票的最大收益,同理,dp[i][1] 表示第i天持有股票的最大收益。 分析: dp[i][0],第i天不持有股票(卖出股票),那这个状态可以来自两方面:1)来自dp[i-1][0],前一天不持有股票,今天也不持有股票,最大收益不会变化;...
2023-07-17
2
280
首页
上一页
1
2
3
4
5
6
下一页
末页