——动态规划dp————
文章平均质量分 53
Lazines_by
好吧,我要工作了
展开
-
hdu5707Combine String(Dynamic_programme)
hdu5707Combine String我的: 这个用一个二维dp,要注意很多细节,在代码里展示吧。我的:#include<iostream>#include<cstring>#include<string>#include<algorithm>#include<cstdio>#include<cstdlib>#include<set>#include<vector>#inc原创 2016-07-24 15:39:26 · 545 阅读 · 1 评论 -
code forces 766C(dp + RMQ)
题意:给出一个字符串,然后将他分成若干个子串,给出了每个字母最多能在多大的子串中,求三个结果:能有多少种分法,最大的子串多长,最多能分成多少个子串。思路:[i,j]这个区间能够形成子串的话应该是min[i,j]>= (j - i + 1);所以我们跑两层循环,当满足这个条件的时候由i - 1得到。dps[i]记录的是到i的种数,dp2[i]表示到i的最少个数。#include原创 2018-01-23 16:24:34 · 168 阅读 · 0 评论 -
hdu5492(dp)
题意:给出一个30 × 30 的矩阵,然后从(1,1)到(n,m),求(n + m - 1) * s1 - s2 * s2的最小值。s1为路径上的点的权值平方和,s2为路径上的点的权值和。思路:dp[i][j][k]表示和为k的时候平方和最小的值。#includeusing namespace std;#define INF 0x3f3f3f3f#define clr(x,原创 2017-10-21 11:51:44 · 192 阅读 · 0 评论 -
hdu 5945 单调队列优化的DP
题意:给3个数x, k, t。经一系列操作后,使x变为1,求最少的操作次数。具体操作为:每次x可以减去一个数0~t,或者除以k。解析:本题使用dp,但是需要用单调队列进行优化。动规需要从1开始,一直往上计算,直到x为止。递归公式为:dp[i]=min(min(dp[i-t]~dp[i-1])+1,dp[i/k]+1)单调队列:单调队列中的数字都是递增或者递减的。本题中队列用来保存下原创 2017-07-29 16:50:41 · 281 阅读 · 0 评论 -
给出N天的股价,能买入和卖出股票,但是任何时候手上最多持有一份股票.允许交易K次求最多的收益.
poj8464股票买卖我的: 这个题目的Dynamic programming 思想: 在a[i]之前找到最小的,然而最大的并不需要找,因为循环的时候回遍历出最大的dp值。 利用两个分开的额循环,找到i之前的最大值和i之后的最大值。 之后再遍历一遍找到两个和的最大值。!!!:还需要注意的是,以后输入输出的时候还是用scanf和printf吧,这次真的认识到cin和sca原创 2016-07-22 18:04:46 · 2449 阅读 · 0 评论 -
Bone Collector
HomeProblemStatusContestAdd ContestStatisticLOGOUTxiaolong UPDATE.. nuc 大一dp(gaoji)训练 24:00:00 Overview Problem Status Rank DiscussABCDEFC - Bone Collector Time Limit:1000MS Memory Limit:3276原创 2016-05-08 20:48:53 · 649 阅读 · 0 评论 -
饭卡
饭卡 Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 20583 Accepted Submission(s): 7191Problem Description电子科大本部食堂的饭卡有一种很诡异的设计,即在购买之前判断余额。如果购原创 2016-05-11 07:57:36 · 1176 阅读 · 0 评论 -
Max Sum
A - Max Sum Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u SubmitStatusPracticeHDU 1003DescriptionGiven a sequence a[1],a[2],a[3]……a[n], your job is to calculate the max原创 2016-05-12 20:35:31 · 268 阅读 · 0 评论 -
Common Subsequence
F - Common Subsequence Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u SubmitStatusPracticeHDU 1159DescriptionA subsequence of a given sequence is the given sequence with原创 2016-05-12 21:21:53 · 311 阅读 · 0 评论 -
hdoj 2046 骨牌铺方格(递推)
在2×n的一个长方形方格中,用一个1× 2的骨牌铺满方格,输入n ,输出铺放方案的总数.思路: 两种情况: 情况 1: 在长方形方格末尾竖着放一个牌, 就转化为2*(n-1)的问题; 情况2 : 在长方形方格末尾横着放两个牌,( 或则在放两张竖着放的牌, 但是由于情况1中包含这种情况, 因此不再计算), 就转化为2*(n-1)的问题; 递推关系式:转载 2016-05-25 16:51:06 · 1198 阅读 · 0 评论 -
hdu1003Max Sum
hdu1003Max Sum我的: Dynamic Programming : 转移方程式为: dp[i]=dp[i-1]+a[i]>a[i]?dp[i-1]+a[i]:a[i] //保证每次Dynamic Programming都是连续的 代码:#include<iostream>#include<cstring>#include<string>#include<algor原创 2016-07-22 15:48:58 · 247 阅读 · 0 评论 -
codeforces 919D 记忆化+判环
题意:在有向图中找出一条路径上边出现的相同颜色最多的,输出这个相同颜色,有环输出-1. 思路:对于每一个点进行记忆化搜索,这里的vis数组的妙用,vis == -1表示未访问过,vis == 0表示已经访问过,vis == 1表示这个节点所有子树已经访问过,所以可以返回值。判断环的话出现了vis == 0那么表示有环。#include#include#include#include原创 2018-02-01 10:48:26 · 231 阅读 · 0 评论