docs: 更新README并添加动态规划算法模板

添加算法笔记标题到README.md
新增两个动态规划算法模板文件:
- opj8782.cpp:处理数字串添加乘号的最大值问题
- P4342.cpp:处理区间合并的最大最小值问题
This commit is contained in:
Zengtudor 2025-08-28 16:11:01 +08:00
parent 37f3373029
commit 2573240c73
3 changed files with 52 additions and 0 deletions

View File

@ -1,3 +1,4 @@
# 算法笔记
## 线性动态规划优化为$O(n\log{n})$方法
>如果是递增序列就lower_bound

31
src/8/28/P4342.cpp Normal file
View File

@ -0,0 +1,31 @@
/*
dpmax[i][j]=[i,j]
dpmin[i][j]=[i,j]
if op[k] == +
dpmax[i][j]=max(dpmax[i][k]+dpmax[k+1][j])
dpmin[i][j]=min(dpmin[i][k]+dpmin[k+1][j])
else if op[k] == *
dpmax[i][j]=max(dpmax[i][k]*dpmax[k+1][j],
dpmax[i][k]*dpmin[k+1][j],
dpmin[i][k]*dpmax[k+1][j],
dpmin[i][k]*dpmin[k+1][j])
dpmin[i][j]=min(dpmax[i][k]*dpmax[k+1][j],
dpmax[i][k]*dpmin[k+1][j],
dpmin[i][k]*dpmax[k+1][j],
dpmin[i][k]*dpmin[k+1][j])
dpmax[i][j] = -1e9
dpmin[i][j] = 1e9
dp[i][i]=arr[i]
*/
int main(){
}

20
src/8/28/opj8782.cpp Normal file
View File

@ -0,0 +1,20 @@
/*
dp[i][j]=i个数字添加j个乘号的最大值
dp[i][j]=max(
dp[i][j],
dp[k][j-1] * num[k+1][i]
)
num[i][i]=n[i]-'0'
num[i][j]=num[i][j-1]*10+(n[j]-'0')
dp[i][j] = -1e9
dp[i][0] = num[1][i]
*/
int main(){
}