
动态规划
文章平均质量分 71
阿尼亚要好好读书呀
Sometimes your whole life boils down to one insane move.
展开
-
动态规划总结笔记
回文串1 LeetCode 516 最长回文子序列测试用例输入:s = “bbbab”输出:4解释:一个可能的最长回文子序列为 “bbbb”class Solution {public: int longestPalindromeSubseq(string s) { int n = s.size(); vector<vector<int>> dp(n,vector<int>(n,0)); // 输出 测原创 2022-03-12 14:59:48 · 2105 阅读 · 0 评论 -
动态规划:P1880 [NOI1995] 石子合并
问题描述在一个圆形操场的四周摆放 NN 堆石子,现要将石子有次序地合并成一堆,规定每次只能选相邻的2堆合并成新的一堆,并将新的一堆的石子数,记为该次合并的得分。试设计出一个算法,计算出将 NN 堆石子合并成 11 堆的最小得分和最大得分。** 题目传送门 **二 区间动态规划#include<iostream>#include<cstdio>using namespace std;const int INT_MAX = 0x3fffffff;const int N原创 2022-03-04 19:19:52 · 628 阅读 · 0 评论 -
经典动态规划:矩阵链乘法 (区间DP)
一 问题描述 (区间DP)来自 北航 《算法设计与分析》 课程 传送门二 c++代码如下#include<iostream>#include<cstdio>using namespace std;const int N = 100 ;int p[N];int dp[N][N];int main(){ int n; scanf("%d",&n); // n 代表矩阵个数 for(int i=0;i<n+1;i++){原创 2022-03-04 19:14:04 · 555 阅读 · 2 评论 -
0-1背包问题(未优化空间复杂度)
o-1背包一、题目输入输出二、算法思想三、代码如下四、复杂度一、题目牛客网 KY66 点菜问题输入输入的第一行有两个整数C(1 <= C <= 1000)和N(1 <= N <= 100),C代表总共能够报销的额度,N>代表能点菜的数目。接下来的N行每行包括两个在1到100之间(包括1和100)的的整数,分别表示菜的>价格和菜的评价分数。输出输出只包括一行,这一行只包含一个整数,表示在报销额度范围内,所点的菜得到的最大评价分数。二、算法思想设置一个二维数字原创 2022-02-18 15:54:44 · 633 阅读 · 0 评论