
动态规划
动态规划
L_S_Chen
厚积薄发
展开
-
石子合并问题
Problem Description 在一个圆形操场的四周摆放着n堆石子。现要将石子有次序地合并成一堆。规定每次只能选相邻的2 堆石子合并成新的一堆,并将新的一堆石子数记为该次合并的得分。试设计一个算法,计算出将n堆石子合并成一堆的最小得分和最大得分。 对于给定n堆石子,计算合并成一堆的最小得分和最大得分。 Input 输入数据的第1行是正整数n,1≤n≤100,表示有n堆石子。第二行有n...原创 2019-11-20 16:44:33 · 137 阅读 · 0 评论 -
数字三角形问题
#include <iostream> using namespace std; int main() { int n, i, j; int a[110][110]; cin >> n; for (i = 1; i <= n; i++) { for (j = 1; j <= i; j++) ...原创 2019-06-01 20:33:58 · 92 阅读 · 0 评论 -
递归的函数
#include <iostream> using namespace std; int p[21][21][21] = {0}; int f(int a, int b, int c) { if (a <= 0 || b <= 0 || c <= 0) return 1; else if (a > 20 || b >...原创 2019-06-01 20:06:53 · 144 阅读 · 1 评论 -
小鑫去爬山
#include <iostream> using namespace std; int main() { int n, i, j, a[110][110]; while (cin >> n) { for (i = 1; i <= n; i++) for (j = 1; j <= i; j++) ...原创 2019-06-02 08:27:43 · 101 阅读 · 1 评论 -
高数Umaru系列(9)——哈士奇
典型0-1背包问题 #include<iostream> #include<stdio.h> #include<stdlib.h> #include<memory.h> using namespace std; int max(int a,int b){ return a>b?a:b; } int main() { in...原创 2019-09-27 09:15:36 · 153 阅读 · 0 评论 -
最少硬币问题
Problem Description 设有n种不同面值的硬币,各硬币的面值存于数组T[1:n]中。现要用这些面值的硬币来找钱。可以使用的各种面值的硬币个数存于数组Coins[1:n]中。 对任意钱数0≤m≤20001,设计一个用最少硬币找钱m的方法。 对于给定的1≤n≤10,硬币面值数组T和可以使用的各种面值的硬币个数数组Coins,以及钱数m,0≤m≤20001,计算找钱m的最少硬币数。 ...原创 2019-09-27 10:45:44 · 135 阅读 · 0 评论 -
数字三角形问题
#include<iostream> #include<stdio.h> #include<stdlib.h> #include<memory.h> using namespace std; int max(int a, int b) { return a > b ? a : b; } int main() { in...原创 2019-09-27 11:00:18 · 102 阅读 · 0 评论 -
最长公共子序列问题
Problem Description 给定两个序列 X={x1,x2,…,xm} 和 Y={y1,y2,…,yn},找出X和Y的最长公共子序列。 Input 输入数据有多组,每组有两行 ,每行为一个长度不超过500的字符串(输入全是大写英文字母(A,Z)),表示序列X和Y。 Output 每组输出一行,表示所求得的最长公共子序列的长度,若不存在公共子序列,则输出0。 #incl...原创 2019-09-27 14:59:54 · 323 阅读 · 0 评论