每日亿题
文章平均质量分 60
斗奋力努
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
每日亿题--2021.5.12 数位dp
数位dp平常考的裸的数位dp其实就是记忆化搜索,在dfs的时候可以通过多定义自己需要和想要的参数来水过去。但对于那些数位dp难题,会和其他一些知识结合起来考,也可能在计算时需要某种优化方法。具体的以后出现了再说,这里是一道十分裸的数位dp题,大家学了数位dp后应该可以秒本题。P4999 烦人的数学作业注意:1、多组数据读入。数据不算太大,可以多次memset(dp,-1,sizeof(dp))。当然初始一次memset(dp,-1,sizeof(dp))也是可以的。2、注意最终结果需要mod(原创 2021-05-12 19:24:21 · 159 阅读 · 1 评论 -
每日亿题--2021.5.11换根dp
换根dp之前发过换根dp通用做法的博文,不记得了可以去看看树形dp–换根今天这题是一道常见的换根dp的题目,是换根dp的简单拓展,两个dfs即可解决。注意数据范围,1≤n,ai≤2×10^5,考虑到转移方程计算的时候存在乘法,为了防止爆int,所以我全程采用了longlong。感觉也有点前缀和的思想。思路:1、知道每条边的权值为1,且每次以某一结点为根节点时,我们求的都是其他节点到根节点的边数*该节点的权值,所以需要用dep数组记录一下每个节点间的深度关系。(深度关系是我自己命名的叫法,具体意思原创 2021-05-11 17:50:20 · 268 阅读 · 1 评论 -
2021-03-17
入门区间dp默认读者已经对区间dp有所了解一、定义区间dp顾名思义是在区间上DP,它的主要思想就是先在小区间进行DP得到最优解,然后再利用小区间的最优解合并求大区间的最优解。二、基础模板(石子合并) for(int len=2;len<=n;len++) //区间长度 { for(int i=1;i<=n;i++) //左端点,后面会用l替换 { int j=i+len-1; //右端点,后面会用r替换原创 2021-03-17 23:50:04 · 176 阅读 · 1 评论 -
2021-03-05
基础dp*数字三角形模型应用数字三角形这是数字三角形问题最经典的题目----数塔问题状态转移方程b[i][j]=max(b[i-1][j-1],b[i-1][j])+a[i][j];当一个点坐标为[i][j]时,都可以有其上面一层的两个坐标分别为[i-1][j-1]和[i-1][j]点转移过来。#include<bits/stdc++.h>using namespace std;int n;int a[1005][1005];int b[1005][1005];int原创 2021-03-05 14:34:01 · 162 阅读 · 1 评论
分享