动态规划
文章平均质量分 65
鶸鶸
这个作者很懒,什么都没留下…
展开
-
hdu 1494 跑跑卡丁车(dp)
中文题意,不bb了 ,直接说思路文中有两个变量,一个是氮气值和路段,其中的关系是走过一段路之后氮气值加20%,氮气值加满之后可以加速,那么我们的 dp[i][j]就表明 在第i路段时 拥有j氮气的时候 的最短时间那么我们可以比较简单的推出动态转移公式(>,dp[i][j]=min(dp[i][j],dp[i-1][j-1]+a[i],dp[i][j+5]+b[i]);其中(1上代码吧:原创 2017-07-11 10:32:46 · 385 阅读 · 0 评论 -
NYOJ 整数划分(三) (划分数大集合)
题意:虽然是中文题意但是还是想上一下题题目描述整数划分是一个经典的问题。请写一个程序,完成以下要求。输入每组输入是两个整数n和k。(1 <= n <= 50, 1 <= k <= n)输出对于输入的 n,k;第一行: 将n划分成若干正整数之和的划分数。第二行: 将n划分成k个正整数之和的划分数。第三行: 将n划分成最大数不超过k的划分数。第四行: 将n划分成若干个 奇正整数...原创 2018-03-27 21:34:14 · 382 阅读 · 0 评论 -
NYOJ 整数划分(四) (区间dp)
题意:给出两个整数 n , m ,要求在 n 中加入m - 1 个乘号,将n分成m段,求出这m段的最大乘积思路:区间dp,我们需要先预处理出第i位到第j位可以凑成的数sum[i][j],之后dp[i][j]表示你在第i个数字添加了j个乘号时的最大值,那么dp[i][j] =max(dp[i][j],dp[k][j-1] * sum[k+1][i])解释一下这个dp数组就是你在第i个数字放第j个乘号...原创 2018-03-28 09:03:57 · 288 阅读 · 0 评论 -
hdu 2524 矩形A+B (dp OR 数学公式)
题意:中文题意就是问你n*m的大矩形里面可以分成几个小矩形思路:可以写dp,我们定义dp[i][j] 表示的时矩形右下角的坐标是(i,j)的时候可以分成的矩形数量,那么他的转移方程时dp[i][j] = dp[i-1][j] + dp[i][j-1] + 1 - dp[i-1][j-1] 初始化:dp[i][0] =1 ,dp[0][i] = 1 , dp[0][0] = 0解释一下dp方程,当你...原创 2018-03-28 15:33:23 · 243 阅读 · 0 评论 -
计蒜客 藏宝图(TSP问题)
题意:中文;思路:其实和我访问量最高的那篇哈利波特偷宝藏有点类似,因为需要在回去所以我直接TSP写了,首先抽点建图,只走最短路,存到dis[i][j]数组,表示的是从第i个点到第j个点的最短距离(利用bfs求一哈),之后就抽象出我有n个城市,每次只能走一遍,走完全程在回到起点的最短距离是多少(TSP问题)上代码把; #include <bits/stdc++.h>using na...原创 2018-03-28 16:53:15 · 246 阅读 · 0 评论 -
HihoCoder - 1701 挑选子集 (思路)
题意:给你一组序列,让你从这中间选取m个数,使他们的差都是k的倍数的方案数是多少思路:点击打开链接和这道cf的题差不多都是一个思路的,讲一下把,就是 A%k == nB%k == n 可以推出 (A-B) % K ==0 自己写几个式子看看, 其实这个式子我是会证明的,不过这里太小写不下嗯,就是这样,那么方法1: 我们统计余数,余数相同的数量(ans)大于m的我们从中选择m个那就是组合...原创 2018-04-05 17:25:13 · 224 阅读 · 0 评论 -
UVA - 624 CD (01背包)
题意: 你现在有一个刻录盘,最多可以刻录N分钟,你有m首歌和他们的时间,问你最多可以刻录多少,并把每首歌的时间给打印出来思路:其实,,,就是-01背包加打印路径吗。。代码:#include <bits/stdc++.h>using namespace std;int a[111111],dp[111111];int vis[1111][1111];int path[1111];...原创 2018-04-05 17:46:35 · 118 阅读 · 0 评论 -
51Nod - 1183 编辑距离(dp)
题意:编辑距离,又称Levenshtein距离(也叫做Edit Distance),是指两个字串之间,由一个转成另一个所需的最少编辑操作次数。许可的编辑操作包括将一个字符替换成另一个字符,插入一个字符,删除一个字符。例如将kitten一字转成sitting:sitten (k->s)sittin (e->i)sitting (->g)所以kitten和sitting的编辑距离是3...原创 2018-04-13 17:31:33 · 145 阅读 · 0 评论 -
HUD 6447 YJJ's Salesman (dp + 树状数组优化)
题意 给你一张109∗109109∗10910^9 * 10^9 的地图,你在(0,0)(0,0)(0,0)位置,你只能向右或者向下或者像右下走,之后给你一些点,你如果从右下走到这些点的时候就会得到他们的值(向右走或者向下走到这些点不会得到他们的值),现在问你如何走完全图让他们的权值最大。 思路 我们可以想到没必要把所有的地图的走完,我们只想着如何把这些有值的点全部都走完之后得到一个最大值就...原创 2018-08-29 15:41:10 · 251 阅读 · 0 评论 -
HDU 6446 Tree and Permutation (思路+dp)
题意 给你n个点,n-1条边的一棵树,现在有一个从(1...n)(1...n){(1...n)}的全排列,表示的是你在这棵树上要走的路线,现在问你走完这些全排列的所有权值和是多少 思路 先看(1,2,3)(1,2,3)(1,2,3)你会发现有(1,2,3)(1,2,3)(1,2,3),(1,3,2)(1,3,2)(1,3,2),(2,1,3)(2,1,3)(2,1,3),(2,3,1)(2,...原创 2018-08-29 15:57:11 · 177 阅读 · 0 评论 -
Wannafly挑战赛12 A 银行存款 (完全背包)
题:链接:https://www.nowcoder.com/acm/contest/79/A来源:牛客网银行的定期存款一般有1年期、2年期、3年期、5年期四种。 现在我们有1块钱,我们想知道,通过合理安排存款方式,n年以后这1块钱最多会变成几块钱。 假设在这n年里利率不变,且n年以后这笔钱不能处于2年期、3年期、5年期存款年限的中间(否则会变成活期)。输入描述:第一行五个数n, r1, r2, r...原创 2018-03-23 23:24:35 · 192 阅读 · 0 评论 -
51nod 1006 (lcs 输出路径)
题意:看上面题目。。思路:普通lcs就不讲了哈,我们讲一下如何输出路径,其实就是再开一个记录数组,记录他是从哪里转移过来的就好了代码:#include <bits/stdc++.h>using namespace std; int dp[1111][1111],vis[1111][1111];int main(){ string ch,sh; cin>>ch&g...原创 2018-03-29 19:47:31 · 308 阅读 · 0 评论 -
hdu 2955 Robberies 01背包
直接说题意吧:就是一个小偷要去偷银行,然后给你他可以容忍的最大被抓率,和有多少个银行,之后给你每个银行的钱数和逃跑率,之后问你他可以获得的最大钱数是多少。思路:第一开始看到这个题,题意太长,直接看样例,一看,这不就是简单的01背包吗,把概率乘100当做背包容量,之后的概率乘上100 变成重量就好了啊,交了一发果断worng,之后回来看题意,这样写有一个致命的bug那就是,你拿到钱的概率怎么原创 2017-07-09 09:53:21 · 194 阅读 · 0 评论 -
hdu5067 Harry And Dig Machine(裸TSP问题 状压dp )
As we all know, Harry Porter learns magic at Hogwarts School. However, learning magical knowledge alone is insufficient to become a great magician. Sometimes, Harry also has to gain knowledge from oth原创 2017-09-10 21:43:56 · 305 阅读 · 0 评论 -
poj 3311 Hie with the Pie(TSP ,状压dp)
The Pizazz Pizzeria prides itself in delivering pizzas to its customers as fast as possible. Unfortunately, due to cutbacks, they can afford to hire only one driver to do the deliveries. He will wait原创 2017-09-11 10:20:42 · 212 阅读 · 0 评论 -
hdu 3001 Travelling (TSP 三进制,状压dp)
After coding so many days,Mr Acmer wants to have a good rest.So travelling is the best choice!He has decided to visit n cities(he insists on seeing all the cities!And he does not mind which city being原创 2017-09-11 10:41:20 · 298 阅读 · 0 评论 -
POJ - 1185 炮兵阵地 (状压dp)
司令部的将军们打算在N*M的网格地图上部署他们的炮兵部队。一个N*M的地图由N行M列组成,地图的每一格可能是山地(用"H" 表示),也可能是平原(用"P"表示),如下图。在每一格平原地形上最多可以布置一支炮兵部队(山地上不能够部署炮兵部队);一支炮兵部队在地图上的攻击范围如图中黑色区域所示: 如果在地图中的灰色所标识的平原上部署一支炮兵部队,则图中的黑色的网格表示它能够攻击到的区域:沿原创 2017-09-11 11:10:24 · 239 阅读 · 0 评论 -
poj 3254 Corn Fields(状压)
Farmer John has purchased a lush new rectangular pasture composed of M by N (1 ≤ M≤ 12; 1 ≤ N ≤ 12) square parcels. He wants to grow some yummy corn for the cows on a number of squares. Regrettably, s原创 2017-09-11 11:14:33 · 214 阅读 · 0 评论 -
poj 2411 Mondriaan's Dream (状态压缩,密铺问题)
Squares and rectangles fascinated the famous Dutch painter Piet Mondriaan. One night, after producing the drawings in his 'toilet series' (where he had to use his toilet paper to draw on, for all of h原创 2017-09-11 10:54:24 · 286 阅读 · 0 评论 -
CDOJ 1349 (LIS 输出路径)
题意:就是输出LIS 的长度和路径思路:emmm,我用的LIS 是n*logn的写法,那么我们的二分数组ans[i]其实放的就是LIS中第i个数的最小值是多少,那么我们添加一个辅助数组A[i],表示的是原数组内的a[i]在ans数组里的第num[i]位,那么我们最后根据num数组里的数字,随便搞搞就出来了,上代码,代码很清楚。#include <bits/stdc++.h>using...原创 2018-03-29 19:43:33 · 200 阅读 · 0 评论 -
ACM-ICPC 2018 南京赛区网络预赛 J AC Challenge (状压dp)
题意 给你n道题,在你做第ii{i}道题的时候有p[j]p[j]{p[j]}个前置条件,当这些前置条件都满足的时候,我们可以得到a[j]∗t+b[j]a[j]∗t+b[j]a[j] * t + b[j]的价值,ttt,表示的是你现在已经做了几道题,问你怎样规划可以得到的权值最大。 思路 状压dpdpdp,dp[state]dp[state]dp[state]表示的是当前状态下,可以得到的最大...原创 2018-09-02 23:17:48 · 268 阅读 · 2 评论