对于每一个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. Spring入门IOC和AOP学习笔记

    Spring入门IOC和AOP学习笔记 概述 Spring框架的核心有两个: Spring容器作为超级大工厂,负责管理.创建所有的Java对象,这些Java对象被称为Bean. Spring容器管理容 ...

  2. [转发]Android视频技术探索之旅:美团外卖商家端的实践

    美团技术团队 2019-09-12 20:02:11 背景 2013年美团外卖成立,至今一直迅猛发展.随着外卖业务量级与日俱增,单一的文字和图片已无法满足商家的需求,商家迫切需要更丰富的商品描述手段吸 ...

  3. zookeeper系列 (第三章 :zookeeper 的使用)

    接上一章,在启动客户端之后,开始通过命令操作zookeeper 服务. 一:zookeeper 的基础命令 1.通过zkCli.sh 命令与主机建立一个会话 2.开始在会话中执行命令:写入Znode. ...

  4. 进程 | 线程 | 当Linux多线程遭遇Linux多进程

    背景 本文并不是介绍Linux多进程多线程编程的科普文,如果希望系统学习Linux编程,可以看[<Unix环境高级编程>第3版] 本文是描述多进程多线程编程中遇到过的一个坑,并从内核角度分 ...

  5. Express框架开发知识点总结

    express --view=pug myapp 以上语句在当前工作目录中创建名为 myapp 的 Express 应用程序,采用的模板是jade. 以前还在纠结使用hbs模板引擎或者ejs模板,实际 ...

  6. linux下的什么工具可以用来查看PostScript文件?

    答: ghostview,官网在这里

  7. word里快捷输入分割线

  8. 阶段5 3.微服务项目【学成在线】_day04 页面静态化_18-页面静态化-模板管理-GridFS研究-取文件

    需要创建mongoDB的配置类1 配置类里面主要创建.GridFSBucket这个对象.这个对象的作用就是用来打开一个下载流 在cms的微服务下,在config下创建MongoConfig.这个时候就 ...

  9. Qt编写自定义控件35-GIF录屏控件

    一.前言 在平时的写作过程中,经常需要将一些操作动作和效果图截图成gif格式,使得涵盖的信息更全面更生动,有时候可以将整个操作过程和运行效果录制成MP4,但是文件体积比较大,而且很多网站不便于上传,基 ...

  10. RocketMQ采坑记

    先来一篇解释比较多的实例 https://www.cnblogs.com/super-d2/p/4154541.html No route info of this topic, PushTopic ...