DP
superFool_song
目前从事移动端开发
展开
-
杭电 2563
#include#includestruct node{int w,l,t,s;} map[25][50][25];int ans[30];int main(){int t;memset(map,0,sizeof(map));memset(ans,0,sizeof(ans));map[0][21][1].l=1;int n,i,j,k;原创 2013-10-31 20:33:55 · 684 阅读 · 0 评论 -
hdu 2606 Renovation Problem hdu 2606
//看了冰学长的思路才明白// 当n>=3时可以全部由2x2的方砖镶嵌得到//eg:// 用 [**] 表示// [**] 一块2x2的方砖// n=15 时//[**][**][**][**][**][**][**] *//[**][**][**][**][**][**][**] *//* [**][**][**][**][**][**][**]原创 2014-04-28 15:10:10 · 668 阅读 · 0 评论 -
nyoj 括号匹配(二)(区间dp)
题目链接:点击打开链接原创 2014-05-20 17:15:39 · 640 阅读 · 0 评论 -
hdu 3652(数位dp 记忆化搜索方法)
题目链接:点击打开链接原创 2014-07-22 11:13:27 · 607 阅读 · 0 评论 -
uestc 250 (数位dp 记忆化搜索解法)
题目链接:点击打开链接原创 2014-07-23 17:03:19 · 517 阅读 · 0 评论 -
hdu 3709(数位dp 记忆化搜索)
平衡数题目链接:原创 2014-07-24 10:10:00 · 454 阅读 · 0 评论 -
LightOJ 1140 How Many Zeroes?(数位dp 记忆化搜索方法)
题意:给你m,n问[m,n]之间所有数字包含多少个lon原创 2014-07-25 14:42:21 · 536 阅读 · 0 评论 -
light oj 1032 - Fast Bit Calculations(数位dp 记忆化搜索解法)
题意:问[0,n]之间所有数用二进制bao原创 2014-07-25 15:45:18 · 452 阅读 · 0 评论 -
hdu2089
很水的一道题但我还是要发出来 yi原创 2014-07-07 18:07:01 · 468 阅读 · 0 评论 -
codeforces (数位dp 记忆化搜索)
题意:枚举[a,b]之间的beautiful数原创 2014-07-26 17:17:16 · 579 阅读 · 0 评论 -
light oj 1068(数位dp)
题意:求[l,r]之间能被k整除 且各位数字原创 2014-07-28 10:31:25 · 443 阅读 · 0 评论 -
poj 3252 Round Numbers(数位dp)
题目链接:点击打开链接原创 2014-07-28 09:51:38 · 382 阅读 · 0 评论 -
hdu3555(数位dp记忆化搜索)
#include#include__int64 dp[25][3];//dp[pos][pre] pos记录位数 pre记录前缀状态0表示前缀不包含49且pos+1不是4 1表示前缀不包含49且pos+1位是4 2表示前缀包含49int digit[25];//存数的各位上的数字int l;//存数的位数__int64 dfs(int pos,int pre,i原创 2014-07-09 16:22:15 · 473 阅读 · 0 评论 -
codeforces 148 D. Bag of mice(概率dp)
概率dp入门题题意:龙和公主zhuo原创 2014-08-06 20:47:26 · 505 阅读 · 0 评论 -
Sgu 495 Kids and Prizes (概率dp)
题意:n个盒子每个盒子里装一个li原创 2014-08-09 11:12:15 · 552 阅读 · 0 评论 -
hdu 2686 Matrix (多线程dp)
//多线程dp 看起来就是记忆化搜索//两条路一起来个dfs()//dp[x1][y1][x2][y2] 记录两个点的坐标#include#include#define N 50#define max(a,b) ((a)>(b))?(a):(b);int mat[N][N];int dp[N][N][N][N],n;int d原创 2014-04-28 08:14:54 · 465 阅读 · 0 评论 -
149D - Coloring Brackets(区间DP 记忆化搜索)
//区间DP 记忆化搜索//虽然没做过记忆化搜索的题 也不知道什么是记忆化搜索//但见网上大神们都这样说 我也是看他们的思路那就这样叫吧//记忆化搜索 应该就是每搜到一种状态就把这种状态存起来 以后再用的时候就不用再去搜了//dp[i][j][c1][c2]表示i到j区间第i个括号染色为c1,第j个括号染色为c2的所有符合要求的情况数#include原创 2013-11-26 13:21:27 · 581 阅读 · 0 评论 -
Zoj 3537(区间DP)
//呜呜哈哈 我的区间DP的第一道题// Graham这个凸包函数是直接复制网上的好像是求凸包的个数//dp[i][j]表示从i到j这个多边形全部分成小三角形所花费的最小费用(不包括边i→j)//状态转移方程 dp[i][j]=min(dp[i][j],dp[i][k]+dp[k][j]+cost[i][k]+cost[k][j])#include#include#原创 2013-11-21 13:57:18 · 871 阅读 · 0 评论 -
POJ 2955(区间dp)
//简单区间DP//题意: 给你一串括号 问你最多有几个可以匹配// dp[i][j]表示从i到j 最多可以匹配的括号数// dp[i][j]=max(dp[i][j],dp[i+1][k-1]+dp[k+1][j]+2)(str[i]与str[k]可以匹配)#include#include#define N 110#define max(a,b) a>原创 2013-11-24 16:59:40 · 542 阅读 · 0 评论 -
366C - Dima and Salad(0-1 背包)
//0-1背包 比赛的时候想到c[i]=a[i]-b[i]*k的转化了 但是没想到用DP//转化后就是一列数c[] 取其中的任意几个 让它们的和为0 并且所对应的a[]的和最大值//c[i]的和的范围是-10000到10000//dp[i][j]表示从前i个数中任意挑出几个数 和为j的状态的所对应a[]的和的最大值//则dp[n][0]就是从n个数中选出任意个它们的和为0 所对应原创 2013-11-26 22:03:42 · 625 阅读 · 0 评论 -
USTC 1276(矩阵dp 二维化一维)
//自己想出来的方法 队友说是矩阵dp 那就这样叫吧//思路: 选一个宽度 和起始列对应的下标 取出对应的区域 求出取出区域内 的子矩阵的最大和 与当前最大和比较// 当取遍所有子矩阵的时候当前最大和 就是 此矩阵所有子矩阵的 最大和//eg:1 1 1 1 // 2 2 2 2// 3 3 3 3// 1 1 1 1//如果 l=2原创 2014-02-24 18:39:32 · 698 阅读 · 0 评论 -
poj 1651(区间dp)
//很简单的区间dp//dp现在还不扎实 看了别人的思路才写出来的//思路: dp[i][j]表示i到j区间以最优方式取出中间的值后所得的最小值//假设k为i到j最后一次取出的卡片则 dp[i][j]=dp[i][k]+dp[k][j]+a[i]*a[k]*a[j]; #include#include#define N 110in原创 2014-02-28 19:04:10 · 525 阅读 · 0 评论 -
ZOJ Problem Set - 3469(区间dp)
//首先声明 本题思路代码都是抄袭大牛ZeroClock的//思路: 例如 1 2 X 4 5// 那么要给1 送饭必须先经过2 就是说必须先给内围的客人送饭 // 那么dp的区间就要从中间往两边慢慢推进 则dp[i][j][0]表示服务员送完i到j这个区间的客户的饭停留在左边 所有客户不满意度的最小和//转载 2014-03-05 15:01:14 · 576 阅读 · 0 评论 -
HDU 4283 You Are the One(区间dp)
//区间dp的用法真是灵活//这个题 想了很长时间 还是错了//下面的思路是参照大牛ZeroClock的// 思路: 栈有一个重要的性质就是 假设共有[1,n]元素 如果第一个元素第k个出栈则 元素2到k比第一个元素先出栈 元素k+1到n比第一个元素后出栈// 那么[1,n]就被分成了[2,k] [k+1,n]两个区间这样就可以用区间dp的三重循环的去做了//第一重循环i表示区转载 2014-03-08 17:01:04 · 486 阅读 · 0 评论 -
hdu 1520 Anniversary party(树形dp)
//树形dp入门第一题// 题意: 给一棵树每个节点都有权值 子节点和父节点不能同时取 问能取得权值之和最大是多少 看似有向边其实为无向边////从任意一个节点x dfs到叶节点 并计算叶节点的值 然后边回溯边dp 求当前节点的最优状态 当回溯到x时整棵树的最优解就得到了//dp[x][0]表示不取节点x得到的最优解 dp[x][1]表示取节点x 当取该节点时 就不能取它的父节点(原创 2014-04-29 15:41:26 · 441 阅读 · 0 评论 -
Hdu 2196 Computer(树形dp)
//树形dp//深搜两次 第一次随便找个节点当做根节点深搜一次记录每个分支的价值 和各个节点的答案//第二次深搜 更新子节点与父节点之间的分支的价值// 根据子节点所连分支的所有价值更新子节点的答案#include#include#define N 11000#define debug 0int dp[2*N];//存答案int vis[2*N]原创 2014-05-01 11:21:24 · 413 阅读 · 0 评论 -
hdu 3555(数位dp)
//数位dp很有用要好好掌握#include#include__int64 dp[30][10][k];//dp[i][j][k]表示i位首位为j(k==1 表示包含49 k=0 表示不包含49)的数有多少个void build(){__int64 i,j,k;memset(dp,0,sizeof(dp));dp[0][0][0]=1;原创 2014-04-16 12:54:27 · 389 阅读 · 0 评论 -
nyoj 1030 Yougth's Game[Ⅲ](区间dp 博弈组合题)
//区间dp和简单博弈组合#include#includeint dp[1100][1100][2];//dp[i][j][1]表示在区间[i,j]先取数的人在所有数都被取完时得到的最优情况 dp[i][j][0]后取数的人在所有数都被取完时得到的最优情况int n;int a[1100];int min(int a,int b){return a原创 2014-05-08 21:41:46 · 651 阅读 · 0 评论 -
Post office (区间dp 记忆化搜索) http://acm.zzuli.edu.cn/problem.php?id=1468
从中间向两边推进dp[x-1][y+1]=dp[x][y]+dist[y]-dist[x];//#include#includeint dp[1100][1100];int dist[1100];int n;void init(){ int i; memset(dp,-1,sizeof(dp)); for(i=1;i<=n;原创 2014-05-16 10:42:15 · 2739 阅读 · 0 评论 -
Fzu 2113 Jason的特殊爱好 (数位dp)
#include#include__int64 dp[20][20];//dp[i][j]表示第i位前有j个1这种状态1的总数int num[20];//存每位数字__int64 a,b;__int64 dfs(int pos,int n,int flag)//pos表示位数 n表示pos位前有多少个1 flag为1表示当前位以前的位上的数与num[]原创 2014-05-09 10:20:34 · 808 阅读 · 0 评论 -
Light oj 1422 Halloween Costumes(区间 dp)
//终于A了区间dp的第二道题//这道题说难也算难解题报告都看不懂把我想的头疼 说简单想清楚了也真简单//题意: 有n个宴会需要参加每个宴会要穿指定的衣服 这个人可以问最少穿多少件//思路: dp[i][j]表示参加i到j宴会需要穿衣服的最少件数 // 从后往前dp// 如果穿上第i件衣服则dp[i][j]=dp[i+1][j]+1;// 但是可能i到j中存在第k个宴会 使原创 2013-11-24 16:09:18 · 704 阅读 · 0 评论 -
zoj 3640 Help Me Escape (概率dp)
题意: 吸血鬼被困在山洞中 这里有n条出去的路mei原创 2014-08-13 17:14:03 · 733 阅读 · 0 评论