.计数类dp
1.快速排序 // 归并排序 模板(复习)高精度乘法/除法模板(高+低)前缀和(一维+二维)差分(一维+二维)模板(8/31)2.双指针(9/1 and9/2 )3.区间合并 (9/3)4. 复习知识,学习单链表数组实现 (9/4)5.数组模拟链表 模拟栈和队列 单调栈和队列(9/7 9/8)6.KMP算法 Trie树(9/9)7. 并查集 堆排序 模拟堆(9/10)8. 哈希表 知识速记(9/11 and 9/13)9.(续)哈希表 和 字符串哈希(9/15)10. STL (9/16)11.19号复习了二分 离散化复习 学习了DFS(9/20)12. dfs(排列数字 n皇后问题) (9/21)13.续 dfs 八皇后问题 (附练了一题dfs)(9/24)14.我汤姆回来了(树和图的深度优先遍历(树的重心))(10/11)15.求图的最短路问题(图的广度优先遍历) (10/12)16.拓扑排序(10/18)17.比赛经验(10/18)18.最短路(10/25)19. 最短路2 Bellman-ford算法 (10/31)20.spfa算法(求最短路和判断是否存在负环)floyd求最短路(11/1)21.最小生成树、二分图(11/2)22.最小生成树 kruscal算法(涉及并查集的应用)23.二分图 染色法 匈牙利算法(11/6 11/7)24.动态规划 背包问题25.动态规划(线性)
26..计数类dp
27.数段数组和线段树整数划分
https://www.acwing.com/problem/content/description/902/
#include<iostream> #include<algorithm> using namespace std; const int N=1010,mod=1e9+7; int f[N];int n; int main() { cin>>n; f[0]=1; for(int i=1;i<=n;i++) for(int j=i;j<=n;j++) f[j]=(f[j]+f[j-i])%mod; cout<<f[n]<<endl; return 0; }
第二种解法
#include<iostream> #include<algorithm> using namespace std; const int N=1010,mod=1e9+7; int f[N][N];int n; int main() { cin>>n; f[0][0]=1; for(int i=1;i<=n;i++) for(int j=1;j<=i;j++) f[i][j]=(f[i-1][j-1]+f[i-j][j])%mod; int res=0; for(int i=1;i<=n;i++) res=(res+f[n][i])%mod; cout<<res<<endl; return 0; }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 一文读懂知识蒸馏
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下