对于每一个dp的问题 从其最优解的结构(分哪几种形式或者情况)入手 然后分析状态 这样就比较好找出状态转方程
这里数据结构的选择很简单 顺序数组就可以 填充的方式顺序填充就可以 然后这道题目卡了我大数。。 #include <stdio.h>
#include <string.h>
#include <algorithm>
using namespace std; char dp[][][][]; void add(char a[],char b[],char back[])
{

int
i,j,k,up,x,y,z,l;
char
*c;
if
(strlen(a) > strlen(b))
l = strlen(a)+;
else

l = strlen(b)+;
c = (char*)malloc(l*sizeof(char));
i = strlen(a)-;
j = strlen(b)-;
k =;
up =;
while
(j>= || i>=)
{

if
(i<) x = '0';
else

x = a[i];
if
(j<) y = '0';
else

y = b[j];
z = x-'0'+y-'0';
if
(up)
z++;
if
(z>)
{

up =;
z%=;
}

else

up =;
c[k++] = z+'0';
i--;
j--;
}

if
(up)
c[k++] = '1';
i =;
c[k] = '\0';
for
(k-=; k>=; k--)
back[i++] = c[k];
back[i] = '\0';
}
int main()
{

int
n,i,j,k;
for
(i =; i<=; i++)
for
(j =; j<=; j++)
for
(k =; k<=; k++)
strcpy(dp[i][j][k],"0");
strcpy(dp[][][],"1");
strcpy(dp[][][],"1");
strcpy(dp[][][],"1");
for
(i =; i<=; i++)
{

for
(j =; j<=i; j++)
{

for
(k =; k<=j; k++)
{

if
(i->=j)
add(dp[i-][j][k],dp[i][j][k],dp[i][j][k]);
if
(j->=k)
add(dp[i][j-][k],dp[i][j][k],dp[i][j][k]);
if
(j>=k-)
add(dp[i][j][k],dp[i][j][k-],dp[i][j][k]);
}
}
}

while
(~scanf("%d",&n))
{

printf("%s\n\n",dp[n][n][n]);
}
return;
}

hdu 1502 大数dp的更多相关文章

  1. Buy the Ticket HDU - 1133 大数dp

    题意: 演唱会门票售票处,那里最开始没有零钱.每一张门票是50元,人们只会拿着100元和50元去买票,有n个人是拿着50元买票,m个人拿着100元去买票. n+m个人按照某个顺序按序买票,如果一个人拿 ...

  2. hdu 4123 树形DP+RMQ

    http://acm.hdu.edu.cn/showproblem.php? pid=4123 Problem Description Bob wants to hold a race to enco ...

  3. hdu 4507 数位dp(求和,求平方和)

    http://acm.hdu.edu.cn/showproblem.php?pid=4507 Problem Description 单身! 依旧单身! 吉哥依旧单身! DS级码农吉哥依旧单身! 所以 ...

  4. hdu 3709 数字dp(小思)

    http://acm.hdu.edu.cn/showproblem.php?pid=3709 Problem Description A balanced number is a non-negati ...

  5. hdu 4352 数位dp + 状态压缩

    XHXJ's LIS Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total ...

  6. hdu 4283 区间dp

    You Are the One Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)T ...

  7. HDU 2829 区间DP & 前缀和优化 & 四边形不等式优化

    HDU 2829 区间DP & 前缀和优化 & 四边形不等式优化 n个节点n-1条线性边,炸掉M条边也就是分为m+1个区间 问你各个区间的总策略值最少的炸法 就题目本身而言,中规中矩的 ...

  8. HDOJ(HDU).2844 Coins (DP 多重背包+二进制优化)

    HDOJ(HDU).2844 Coins (DP 多重背包+二进制优化) 题意分析 先把每种硬币按照二进制拆分好,然后做01背包即可.需要注意的是本题只需要求解可以凑出几种金钱的价格,而不需要输出种数 ...

  9. HDOJ(HDU).1059 Dividing(DP 多重背包+二进制优化)

    HDOJ(HDU).1059 Dividing(DP 多重背包+二进制优化) 题意分析 给出一系列的石头的数量,然后问石头能否被平分成为价值相等的2份.首先可以确定的是如果石头的价值总和为奇数的话,那 ...

随机推荐

  1. JAVA基础知识|TCP/IP协议

    虽然写代码也有一定的年头了,但是对于一些基础概念,还是很模糊.这在后来的学习过程中,带来了很大的痛苦,所以痛定思痛,决心重新学习这些概念.并把自己的理解和查询的资料做一些整合,便于以后查阅! 一.什么 ...

  2. Java并发指南12:深度解读 java 线程池设计思想及源码实现

    ​深度解读 java 线程池设计思想及源码实现 转自 https://javadoop.com/2017/09/05/java-thread-pool/hmsr=toutiao.io&utm_ ...

  3. asp.net core spa应用(angular) 部署同一网站下

    需求:现在一个应用是前后端开发分离,前端使用angular,后端使用 asp.net core 提供api ,开发完成后,现在需要把两个程序部署在同一个网站下,应该怎么处理? 首先可以参考微软的官方文 ...

  4. K-Means算法及代码实现

    1.K-Means算法 K-Means算法,也被称为K-平均或K-均值算法,是一种广泛使用的聚类算法.K-Means算法是聚焦于相似的无监督的算法,以距离作为数据对象间相似性度量的标准,即数据对象间的 ...

  5. HearthBuddy Ai 调试实战2 在使用海巨人的时候,少召唤了一个图腾(费用是对的)

    问题 游戏面板 8是青玉之爪13是海巨人17是恐狼前锋 64是萨满 66是圣骑士63,99,46,是微型木乃伊[其中99和46都是2血3攻,63是2血1攻]57是鱼人木乃伊 微型木乃伊 "L ...

  6. 背包DP 方案数

    题目 1 P1832 A+B Problem(再升级) 题面描述 给定一个正整数n,求将其分解成若干个素数之和的方案总数. 题解 我们可以考虑背包DP实现 背包DP方案数板子题 f[ i ] = f[ ...

  7. Vue于React特性对比(四)

    新开了一个vue的项目,从vue单页面框架搭建到单点登录接入都是自己负责搞的.然后准备将这套东西迁移到react上.然后有了这篇文章. 1,reactjs分环境打包明显要比vue更为麻烦 vue修改的 ...

  8. python笔记4 内置函数,匿名函数.递归函数 面向对象(基础, 组合,继承)

    内置函数 eval和exec eval :执行字符串中的代码并将结果返回给执行者,有返回值 exec:执行字符串中的代码,往往用于执行流程语句,没有返回值. s1 = '1+2' s2 = 'prin ...

  9. 使用idea进行activiti工作流开发入门学习

    1.安装插件 在idea里面,activiti的插件叫actiBPM,在插件库里面把它安装好,重启idea就行了. 2.新建一个maven项目,并更改pom.xml.pom中依赖如下: <?xm ...

  10. React Native清除缓存实现

    清除缓存使用的第三方:react-native-http-cache   Github: https://github.com/reactnativecn/react-native-http-cach ...