mirror of
https://gitcode.com/Zengtudor/alg2025.git
synced 2025-09-05 17:50:36 +00:00
docs: 更新README并添加动态规划算法模板
添加算法笔记标题到README.md 新增两个动态规划算法模板文件: - opj8782.cpp:处理数字串添加乘号的最大值问题 - P4342.cpp:处理区间合并的最大最小值问题
This commit is contained in:
parent
37f3373029
commit
2573240c73
@ -1,3 +1,4 @@
|
|||||||
|
# 算法笔记
|
||||||
## 线性动态规划优化为$O(n\log{n})$方法
|
## 线性动态规划优化为$O(n\log{n})$方法
|
||||||
>如果是递增序列就lower_bound
|
>如果是递增序列就lower_bound
|
||||||
|
|
||||||
|
31
src/8/28/P4342.cpp
Normal file
31
src/8/28/P4342.cpp
Normal 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
20
src/8/28/opj8782.cpp
Normal 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(){
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user