随笔分类 -  DP

HDU 1231 最大连续子序列
摘要:1 #include 2 #include 3 4 using namespace std; 5 const int maxn = 10000; 6 int num[maxn+5]; 7 8 int main() 9 {10 int k;11 while(scanf("%d... 阅读全文
posted @ 2014-12-14 23:38 Love风吟 阅读(136) 评论(0) 推荐(0)
HDU 2442
摘要:状态压缩DP , 和HDU2280极其相似 1 #include 2 #include 3 #include 4 5 using namespace std; 6 const int N = 105; 7 int dp[N][1= m){13 dp[i][u][s] = ma... 阅读全文
posted @ 2014-11-06 01:10 Love风吟 阅读(216) 评论(0) 推荐(0)
HDU 2280 状压DP
摘要:用dfs找到状态的最优解且那个正方形块可以由两个水平块组成,所以无需考虑 1 #include 2 #include 3 #include 4 5 using namespace std; 6 #define N 1005 7 int state[N] , n , m , dp[N][1 5... 阅读全文
posted @ 2014-11-02 12:24 Love风吟 阅读(205) 评论(0) 推荐(0)
POJ 2411 状压dp
摘要:题目大意:用 1*2 或者2 *1的木板填满 h*w的长方形,问总共有多少种填充方法直接dfs会超时,因为后面答案甚至爆了int,直接搜,肯定也是long long 的时间复杂度这里我们将当前位置没放置任何木板为 0 , 如有放置则看为 1每次通过当前行 i 的状态 old 找到下一行 i + 1 ... 阅读全文
posted @ 2014-10-28 22:38 Love风吟 阅读(190) 评论(0) 推荐(0)
POJ 1185 状压DP
摘要:legal[] 保存所有在当前行可显示的状态,由dfs得到,len[]保存legal[]对应下标状态中的 1 的个数 , 也就是放置炮台的个数state[i] 表示第 i 行这块区域的土地情况,H表示 1 ,P表示 0那么每次加入一个legal状态 都要符合 !(legal[i] & state[k... 阅读全文
posted @ 2014-10-28 21:36 Love风吟 阅读(147) 评论(0) 推荐(0)
CSU 1225 最长上升子序列并记录其个数
摘要:1 for(int j=0;j h[j]){ 3 if(len[i] == len[j] + 1) cnt[i]+=cnt[j]; 4 if(len[i] 2 #include 3 using namespace ... 阅读全文
posted @ 2014-10-23 12:50 Love风吟 阅读(163) 评论(0) 推荐(0)
DP 简单题目练习
摘要:ZOJ 1234这道题目我表示也还不是特别能理解。。。。还是太菜了T T从后往前思考,因为只要后面有多的数在,那么C肯定是存在的,只要考虑是否把前两个数加在一起作为badness值这样两种情况来考虑如果总数和3*j相同的话,那必然不用多考虑,它只能以前两个数的平方差作为badness值 1 #inc... 阅读全文
posted @ 2014-09-30 14:25 Love风吟 阅读(291) 评论(0) 推荐(0)
HDU 4745 最长回文子序列
摘要:题目大意两只青蛙朝不同方向条,每次都到达值相同的位置,不能重复到达自己到过的地方,且不能飞跃已到过的地方我们可以理解为这两只青蛙分别把整个序列遍历了一遍,依次走过所有的点,找到最多相同的点的个数,因为朝不同方向,且形成环,所以可以把数组扩大两倍,写两组一样的数组每次跳完得到的必然可以理解为是一个回文... 阅读全文
posted @ 2014-09-30 00:50 Love风吟 阅读(388) 评论(0) 推荐(0)
HDU 4035 期望dp
摘要:这道题站在每个位置上都会有三种状态死亡回到起点:k[i]找到出口结束 e[i]原地不动 p[i]k[i]+e[i]+p[i] =1;因为只给了n-1条路把所有都连接在一起,那么我们可以自然的把这张图看成一个树型结构根据作为父亲节点和叶子节点作为区分进行推导详情可参考:http://blog.csdn... 阅读全文
posted @ 2014-09-26 23:44 Love风吟 阅读(155) 评论(0) 推荐(0)
ZOJ 3329 期望DP
摘要:题目大意:给定3个已经规定好k1,k2,k3面的3个色子,如果扔到a,b,c则重新开始从1 计数,否则不断叠加所有面的数字之和,直到超过n,输出丢的次数的数学期望我们在此令dp[]数组记录从当前数值到结束的数学期望假如有3个面数都为2的色子那么dp[i] = 1.0 / 2/2/2 * dp[0] ... 阅读全文
posted @ 2014-09-26 21:58 Love风吟 阅读(171) 评论(0) 推荐(0)
POJ 2096 找bug 期望dp
摘要:题目大意:一个人受雇于某公司要找出某个软件的bugs和subcomponents,这个软件一共有n个bugs和s个subcomponents,每次他都能同时随机发现1个bug和1个subcomponent,问他找到所有的bugs和subcomponents的期望次数。这道题目要用期望dp来进行统计假... 阅读全文
posted @ 2014-09-26 13:38 Love风吟 阅读(229) 评论(0) 推荐(0)
HDU 5025 状态压缩蛇+bfs+dp
摘要:题目大意:孙悟空要找到一条花费时间最短的路径,路上为S的代表有蛇,经过需多花一分钟,其他情况下都是走过花费一分钟,但数字必须依次得到,最后到了唐僧处,可以经过也可以救出,救出前提是得到所有种类的钥匙这道题,我们不断找到到达每一个点的不同状态下的最小花费时间,用dp[N][N][11][status]... 阅读全文
posted @ 2014-09-25 00:49 Love风吟 阅读(484) 评论(1) 推荐(0)
HDU 5001 Walk 概率DP
摘要:题目大意:一个人随即从一个点出发,到达邻接点的概率相同,求出走d步都不会到达1~n点的每一项的不可能概率(这里第一次随即取的点是要求的点也算到达过了)这道题开始一直在计算到达那一点的可能性,最后用1-ans[i],但到最后还是没有找到自己哪里错了,有机会再看看后来直接计算不可能概率,通过dp找到一直... 阅读全文
posted @ 2014-09-13 22:20 Love风吟 阅读(383) 评论(0) 推荐(0)
POJ 1191 DP+DFS棋盘分割问题
摘要:题目大意:Description将一个8*8的棋盘进行如下分割:将原棋盘割下一块矩形棋盘并使剩下部分也是矩形,再将剩下的部分继续如此分割,这样割了(n-1)次后,连同最后剩下的矩形棋盘共有n块矩形棋盘。(每次切割都只能沿着棋盘格子的边进行)原棋盘上每一格有一个分值,一块矩形棋盘的总分为其所含各格分值... 阅读全文
posted @ 2014-09-08 15:34 Love风吟 阅读(301) 评论(0) 推荐(0)
HDU 1078 dfs+dp
摘要:题目大意:在n*n的矩阵中,每个格子放置了一定数量的食物,一只老鼠每次水平或竖直最多移动k格,每次到的位置食物都要比前一次多,问最后一共能得到多少食物这道题利用记忆化搜索做,利用nowstate不断记录下一个位置所能到达的最大值,利用nowstate+mat[i][j](当前区域中所含的食物数量)得... 阅读全文
posted @ 2014-09-08 13:48 Love风吟 阅读(437) 评论(0) 推荐(0)
HDU 1278
摘要:题目大意:从(1,1)到(n,n),每经过一个点都要花费一定的时间,问花最短时间的路径有多少条dfs+dp先用bfs把所有到n花费的时间逆向dp计算一遍再用dfs不断找到前一个对应的较短路径的点不断搜索路径 1 #include 2 #include 3 #include 4 using na... 阅读全文
posted @ 2014-09-07 11:52 Love风吟 阅读(234) 评论(0) 推荐(0)
HDU 4597
摘要:题目大意:两人轮流从两堆牌从抽取最顶端或者最底部的牌,得到的分数加到自己身上,问先拿牌的最多能得多少分记忆化搜索,2堆牌的底和顶,有四种方法,根据四种方法来找到最优解 1 #include 2 #include 3 #include 4 using namespace std; 5 int d... 阅读全文
posted @ 2014-09-06 18:59 Love风吟 阅读(393) 评论(0) 推荐(0)
HDU 4405 飞行棋上的数学期望
摘要:突然发现每次出现有关数学期望的题目都不会做,就只能找些虽然水但自己还是做不出的算数学期望的水题练练手了题目大意:从起点0点开始到达点n,通过每次掷色子前进,可扔出1,2,3,4,5,6这6种情况,扔到几前进几,当然对应飞行通道可以通过x直达一点y,x 2 #include 3 using name... 阅读全文
posted @ 2014-08-14 22:37 Love风吟 阅读(586) 评论(0) 推荐(0)
CSU 1290 DP解决数学期望问题
摘要:题目链接:http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1290题目大意:给定k个数,每次可以生成0-N-1中的任何一个数,k个数中出现不同的整数的个数的数学期望 1 #include 2 #include 3 using namespace ... 阅读全文
posted @ 2014-08-14 17:17 Love风吟 阅读(226) 评论(0) 推荐(0)
SPOJ GNYR09F 数字上的找规律DP
摘要:Problem C SPOJ GNYR09Fdp题,dp可能刚刚开始对大家来说比较难,但是静下心来分析还是比较简单的;dp(i ,j ,k)表示前i个数中,当前累积和为j,末尾数字为k的方案数。考虑第i个位置的2种情况: 1.放0:dp(i,j,0) = dp(i-1,j,0) + dp(i-1,j... 阅读全文
posted @ 2014-08-11 15:06 Love风吟 阅读(197) 评论(0) 推荐(0)