动态规划
文章平均质量分 54
大 聪 明
Big Smart
展开
-
计蒜客 - 43116 结果填空:爬楼梯(dfs dp)
传送门蒜头君要爬楼梯。楼梯一共有 1010 层台阶。因为腿长的限制,每次最多能上 44 层台阶。但是第 5,75,7 层楼梯坏掉了不能踩。求上楼梯的方案数。分析:这题是从0层开始走的!!!!dfs:完全模拟,恰好到第10层就ans++;而且for循环保证不会走重复#include<stdio.h>#include<iostream>using namespace std;#define ll long longint vis[20];int ans;void df原创 2022-04-04 15:02:55 · 694 阅读 · 0 评论 -
洛谷 - P1387 最大正方形(dp 二维前缀和)
在一个n*m的只包含0和1的矩阵里找出一个不包含0的最大正方形,输出边长。Input输入文件第一行为两个整数n,m(1<=n,m<=100),接下来n行,每行m个数字,用空格隔开,0或1.Output一个整数,最大正方形的边长Sample 1Inputcopy Outputcopy4 40 1 1 11 1 1 00 1 1 01 1 0 12分析:dp:开两个for循环遍历,记录当前可以组成正方形的最大边长,每次比较遍历位置的 正左 正上 左上位置中最小的再加1,如原创 2022-04-02 08:45:12 · 212 阅读 · 0 评论 -
Multiplication Puzzle POJ - 1651 (动态规划)
链接分析:依次从左到右给你n个数字,每次取出一个数字(这个数字不能是最两边的数字),这个数字和它左右两边的数字(一共三个数字)相乘,累加这个数。直到最后仅剩下两个数字。求最后累加的最小值。对于整个牌的序列,最左端和最右端的牌是不能被取走的,除这两张以外的所有牌,必然有一张最后取走。取走这最后一张牌有一个仅与它本身以及最左端和最右端的牌的值有关的得分,这个分值与其他牌没有任何关系。当这张最后被取走的牌被定下来以后(假设位置为j), 最左端到j之间的所有牌被取走时所造成的得分必然只与这之间的牌有关从而与j原创 2022-01-14 20:52:26 · 336 阅读 · 1 评论 -
括号匹配(动态规划)
链接Hecy 又接了个新任务:BE 处理。BE 中有一类被称为 GBE。以下是 GBE 的定义:空表达式是 GBE如果表达式 A 是 GBE,则 [A] 与 (A) 都是 GBE如果 A 与 B 都是 GBE,那么 AB 是 GBE下面给出一个 BE,求至少添加多少字符能使这个 BE 成为 GBE。输入格式输入仅一行,为字符串 BE。输出格式输出仅一个整数,表示增加的最少字符数。样例Input Output[])1数据范围与提示对于 100%的数据,输入的字符串长度小于 10原创 2022-01-11 20:46:18 · 974 阅读 · 0 评论 -
石子合并(动态规划)
传送门分析:首先起始位置未知,不能随意根据最大或最小作为起始点,因为例如想求最大的,原理就是先找最大的,因为每个求和都把前面的和加一遍,所以此时前面的和最大才能求出后面的最大解,所以必须用for循环动态规划!接着要求是环状的,所以一定有首位相加的情况,此时就开一个2倍的数组,这样首尾就可以一起讨论了。3.求其递推方程 其递推方程:m[i][j] = m[i][k]+m[k+1][j] + sum [j] - sum [i -1];4.递推方程的解释:前面的m[i][k] 和 m[k+1][j]原创 2022-01-10 20:51:37 · 702 阅读 · 0 评论 -
计蒜客 - T1551 魔法少女(动态规划)
链接题意:每走一层楼梯都需要消耗一定的时间,这过程中也可以采用飞行,能量有限,每次最多能飞1-2层就必须走楼梯休息。问你走完n层的最短时间是多少?分析:一步一步规划才行:不飞走到这层楼顶,时间为这层用时加上走完上一层的最小用时;飞走到这层楼顶,时间为上一层不飞与上两层不飞的中的最小值;AC代码:#include<stdio.h>#include<string.h>#include<algorithm>using namespace std;long l原创 2021-10-28 10:41:37 · 160 阅读 · 0 评论 -
E. By Elevator or Stairs?楼梯还是电梯(动态规划)
我是传送门You are planning to buy an apartment in a n-floor building. The floors are numbered from 1 to n from the bottom to the top. At first for each floor you want to know the minimum total time to reach it from the first (the bottom) floor.Let:ai for all原创 2021-07-09 21:31:31 · 173 阅读 · 0 评论 -
POJ - 3616Milking Time挤牛奶(动态规划)
#include<stdio.h>#include<string.h>#include<algorithm>using namespace std;struct node{ int a,b,c;}l[1010];/*int cmp(node x,node y){ if(x.a!=y.a) return x.a<y.a; if(x.b!=y.b ) return x.b<y.b; return x.c<y.c;}*/int原创 2021-07-31 17:05:30 · 1187 阅读 · 0 评论