DP问题练习1:数字三角最短路径问题 问题描述 给定一个数字三角形,找到从顶部到底部的最小路径和.每一步可以移动到下面一行的相邻数字上. 样例: 比如,给出下列数字三角形: 2 3 4 6 5 7 4 1 8 3 从顶到底部的最小路径和为11 ( 2 + 3 + 5 + 1 = 11). 思路 我们给每一个位置标上坐标 2 (0,0) 3 4 (1,0) (1,1) 6 5 7 ... 4 1 8 3 ... 我们用f(i,j)表示从(i,j)位置一直到三角形底部的最小路径和. 那么f(0,0)…
「单调队列优化DP」P2034 选择数字 题面描述: 给定一行n个非负整数a[1]..a[n].现在你可以选择其中若干个数,但不能有超过k个连续的数字被选择.你的任务是使得选出的数字的和最大. 输入格式 第一行两个整数n,k 以下n行,每行一个整数表示a[i]. 输出格式 输出一个值表示答案. 输入输出样例 输入 #1 5 2 1 2 3 4 5 输出 #1 12 说明/提示 对于20%的数据,n <= 10 对于另外20%的数据, k = 1 对于60%的数据,n <= 1000 对于100…
题意:中文 https://vjudge.net/problem/POJ-1661 题解:设两个dp数组,dpl[i]存 从第i块板左边到地上所花的最短时间,dpr[i]存右边的. 将所有板按高度排序 ,从地面到人分别编号为0,1~n, n+1 坑:dp方程写错了个字母. 一开始只用了一个dp数组(还改半天) 没考虑同一高度 人与地板算入dp数组时的赋值 #define _CRT_SECURE_NO_WARNINGS #include<iostream> #include<vector&…
原题链接:填数字 顺便推荐一下,偶然看到这个OJ,发现社区运营做得很赞,而且交互和编译环境都很赞(可以编译包括Python,Ruby,Js在内的脚本语言,也可以编译新标准的C/C++11,甚至包括Go和C Sharp等),虽然暂时不太火,但估计会逐渐成为国内算法界非常受欢迎的OJ社区. 主页:http://www.51nod.com/index.html 本题是个题意简单的,思路复杂的DP题,说实话,光是想出这种DP就已经非常不易了,即便写出来也要考虑清楚每一种转移的公式和数值关系. 原题:有n…
偶数个数字3 总时间限制: 10000ms 单个测试点时间限制: 1000ms 内存限制: 131072kB [描述] 在所有的N位数中,有多少个数中有偶数个数字3? [输入] 一行给出数字N,N<=1000 [输出] 如题 [样例输入] 2 [样例输出] 73 [Solution] 用dp[i][1]表示i位数有奇数个三的数量,dp[i][0]表示有偶数个三的数量.dp[i][1]可以从dp[i-1][1]首位添加0 1 2 4 5 6 7 8 9和dp[i-1][0]首位添加3转移,dp[i…
题目:有代价的最短路径 题目介绍:如下图所示,现在平面上有N个点,此时N=7,每个点可能和其他点相连,相连的线有一定权值,求出从0点到N-1点的消耗权值的最小值. 分析:用动态规划的思路来解决,每一点与其他点的消耗权值的最小值都储存在一个二维数组中,下一个点消耗的最小值可以根据前一个点来得出.如果两个点不相连,可以认为这两点的权值为无穷大.设一个二维数组初始化为无穷,再导入权值初始值,再用状态方程得出最小值储存在数组中. 状态方程:l[k][j] = min(l[k][j], l[k][i] +…
给出一段区间a-b,统计这个区间内0-9出现的次数. 比如 10-19,1出现11次(10,11,12,13,14,15,16,17,18,19,其中11包括2个1),其余数字各出现1次.   输入 两个数a,b(1 <= a <= b <= 10^18) 输出 输出共10行,分别是0-9出现的次数 输入样例 10 19 输出样例 1 11 1 1 1 1 1 1 1 1 解:被这道题卡了好久...最后自己找了个数模拟了一边流程.举个例子简单说说:对于数5314,我们可以将它拆分为[53…
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1176 这题就是数字三角行的变形,可惜对于我这个渣渣来说就是没发现,区别是他可以保持在三个点,他左边的点,右边的点,还有原点, 从下往上处理.其他就没有什么好说的了,注意一下细节问题,我记得这题我白白贡献了几次WA. #include <iostream> #include <stdio.h> #include <string.h> #include <math.h>…
7 3     8 8     1     0 2     7     4     4  4     5     2     6     5 给出一个数字三角形.从三角形的顶部到底部有很多条不同的路径.对于每条路径,把路径上面的数加起来可以得到一个和,你的任务就是找到最大的和.      注意:路径上的每一步只能从一个数走到下一层上和它最近的左边的那个数或者右边的那个数输入 第一行是一个整数N (1 < N <= 100),给出三角形的行数. 下面的N行给出数字三角形.数字三角形上的数的范围都…
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1176 免费馅饼 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 60927    Accepted Submission(s): 21380 Problem Description 都说天上不会掉馅饼,但有一天gameboy正走在回家的小径…