DP
JavonLu
想得很多,所以需要求做更多
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
POJ 2955 Brackets 区间DP 入门
dp[i][j]代表i->j区间内最多的合法括号数if(s[i]=='('&&s[j]==')'||s[i]=='['&&s[j]==']') dp[i][j]=dp[i+1][j-1]+2; dp[i][j]=max{dp[i][k]+dp[k+1][j]};注意要对于区间的最值合并 ac代码:#include<cstdio> #include<cstring> #include<al原创 2016-03-01 21:58:34 · 309 阅读 · 0 评论 -
uestc1307 windy数 (数位DP)
题目题意: windy定义了一种windy数。不含前导零且相邻两个数字之差至少为2的正整数被称为windy数。 windy想知道, 在A和B之间,包括A和B,总共有多少个windy数?思路: 求长度小于len的windy数,长度等于len的windy数,这个数字本身的windy数。#include<iostream> #include<cstring> #include<cstdio> #inc原创 2016-09-21 20:43:00 · 355 阅读 · 0 评论 -
HDU5890 Eighty seven (数位DP)
连着打了几场的区域赛网络赛,虽然都打到了名额…但是感觉状态不好啊…明明会的题目,总是各种wa…..题意:给出一个区间[l, r],问其中数位中连续的奇数长度为偶数并且连续的偶数长度为奇数的个数。(1<=L<=R<= 9*10^18)思路:就是一个数位DP,但是很久没有敲了,看以前的代码找感觉….各种小细节的处理各种麻烦…比如前导零…#include <vector> #include <stdio.原创 2016-09-20 16:56:04 · 529 阅读 · 0 评论 -
Coloring Trees (三维DP)
B题没有考虑到除了0点以外,原来就不符合的情况,又掉分了….. 题目 题意: n颗树,每棵树可以涂m种颜色,把树分成k组,连续相同颜色的树为合并为一组 给出了n颗树的涂色情况,当涂色为0的时候,表示还没有涂颜色 给n * m 的矩阵,第i行j列为 第i个点,图j颜色的消耗 求n颗树涂颜色涂成k组时,用的最少消耗是多少思路: 状态方程: dp[i][k][j] 表示原创 2016-08-30 15:48:22 · 311 阅读 · 0 评论 -
HDU5795 博弈
多校的题目题意,nim游戏,n堆石子,可在一堆中取任意个,也可把一堆分为三堆,最后取完的胜思路:打表找规律。。x=8k+7时,sg[x]=x+1,x=8k+8时,sg[x]=x-1,其余情况,sg[x]=x。打表代码:#include<string> #include<cstring> #include<sstream> #include<iostream> #include<cmath> #inc原创 2016-08-19 15:09:33 · 397 阅读 · 0 评论 -
BZOJ 2669 cqoi2012 局部极小值 状压DP+容斥原理
在CCPC上遇到由此改编的原题,然而并没有做出来….. 题意:给定一个n∗m 的矩阵,标记出其中的局部极小值,要求填入1…n∗m ,求方案数Sample Input 2 4 .X.. …X 4 2 X. .. .. X. 1 2 XXSample Output Case #1: 2100 Case #2: 2520 Case #3: 0由于局部极小值最多8 个,我们可以状原创 2016-08-15 21:39:57 · 507 阅读 · 0 评论 -
树型DP入门
题意: 某公司要举办一次晚会,但是为了使得晚会的气氛更加活跃,每个参加晚会的人都不希望在晚会中见到他的直接上司,现在已知每个人的活跃指数和上司关系(当然不可能存在环),求邀请哪些人(多少人)来能使得晚会的总活跃指数最大。思路: 任何一个点的取舍可以看作一种决策,那么状态就是在某个点取的时候或者不取的时候,以他为根的子树能有的最大活跃总值。分别可以用f[i,1]和f[i,0]表示第i个人来和不来。原创 2016-02-29 20:23:17 · 447 阅读 · 0 评论 -
poj3661 区间dp
原题链接Sample Input 5 2 5 3 4 2 10 Sample Output 9题意: 给n,m,n表示有n分钟,每i分钟对应的是第i分钟能跑的距离,m代表最大疲劳度,每跑一分钟疲劳度+1,当疲劳度==m,必须休息,在任意时刻都可以选择休息,如果选择休息,那么必须休息到疲劳度为0,当然,当疲劳度为0的时候也是可以继续选择休息的,求在n分钟后疲劳度为0所跑的最大距离。思原创 2016-03-11 21:31:55 · 298 阅读 · 0 评论 -
HDU 2196 Computer(树形dp经典)
原题链接题意: 给出一棵树,求离每个节点最远的点的距离。思路: 对于任意一个节点,要寻找其的最远距离的点,则有两种可能。对其子树的子节点的查找,对于其父节点的查找,各自找到其最远距离的节点,并比较两者的大小,即可得到最远距离的节点。实现: [i][0],表示顶点为i的子树的,距顶点i的最长距离 f[i][1],表示Tree(i的父节点)-Tree(i)的最长距离+i跟i的父节点距离子节点查找原创 2016-03-09 20:57:55 · 265 阅读 · 0 评论 -
poj1651 区间dp
原题链接Sample Input 6 10 1 50 50 20 5 Sample Output 3650题意: 给你一组数字,第一个和最后一个数字不可以取出去,其它任意取出去,当你要取出一个数字时,它有一个代价,这个代价就是与它相邻的两个数的乘积,求除了首位两位数字,把其他数字都取出来,它们的代价之和的最小值……..思路: 用dp[i][j]代表i到j区间的代价和。对于每一个dp[i]原创 2016-03-10 19:48:59 · 324 阅读 · 0 评论 -
记忆化搜索
忆化搜索:算法上依然是搜索的流程,但是搜索到的一些解用动态规划的那种思想和模式作一些保存。 记忆化算法在求解的时候还是按着自顶向下的顺序,但是每求解一个状态,就将它的解保存下来, 以后再次遇到这个状态的时候,就不必重新求解了。例1.题目描述: 给从左至右排好队的小朋友们分糖果, 要求: 1.每个小朋友都有一个得分,任意两个相邻的小朋友,得分较高的所得的糖果必须大于得分较低的,相等则不作要求原创 2016-03-04 19:16:02 · 312 阅读 · 0 评论 -
不要64 数位DP
Problem Description 杭州人称那些傻乎乎粘嗒嗒的人为62(音:laoer)。 杭州交通管理局经常会扩充一些的士车牌照,新近出来一个好消息,以后上牌照,不再含有不吉利的数字了,这样一来,就可以消除个别的士司机和乘客的心理障碍,更安全地服务大众。 不吉利的数字为所有含有4或62的号码。例如: 62315 73418 88914 都属于不吉利号码。但是,61152虽然含有6和2原创 2016-02-15 19:09:33 · 398 阅读 · 0 评论 -
数位DP 计划
通常的数位dp可以写成如下形式: [cpp] view plain copy int dfs(int i, int s, bool e) { if (i==-1) return s==target_s; if (!e && ~f[i][s]) return f[i][s]; int res = 0;转载 2016-02-14 19:03:27 · 426 阅读 · 0 评论 -
Hdu 3709 Balanced Number
题目:http://acm.hdu.edu.cn/showproblem.php?pid=3709思路:平衡数。枚举平衡位置,记忆化搜索的方式记录已有的值。加剪枝,排除掉重复的0。#include <iostream> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <math.h> #include <map>原创 2016-09-21 21:46:01 · 301 阅读 · 0 评论
分享