博客
关于我
巧克力蛋糕 DP
阅读量:161 次
发布时间:2019-02-28

本文共 779 字,大约阅读时间需要 2 分钟。

在这里插入图片描述

在这里插入图片描述

题目大意,现在有一个L高度的容器,还有三种巧克力:1.高1cm的黑巧克。2.高1cm的白巧克。1.高kcm的黑巧克。然后要使得最上层和最底层都是黑巧克力,并且黑白巧克力必须间隔着放置。可以不放满,但是总高度不能超过L,问:有多少种摆放方式。

刚开始我是用dfs跑的,然后tle了。然后看了一下题解发现是dp(题解说是简单dp,但是我看了很久才懂)。

我们使用一个二维数组dp[max][5],其中dp[i][1/2/3]表示第i层的1cm的黑巧克力/白巧克力/kcm的黑巧克力的可摆放方案数。模拟着题目要求进行dp即可。因为顶上和底下都必须是黑巧克力,最后只需将所有高度的黑巧克力的方案数全加起来即可。

ll dp[1005][5];int main(){       ll l, k;    cin >> l >> k;    ll ans = 0;    dp[1][1] = 1;    dp[1][3] = (l >= k) ? 1 : 0;    for (int i = 2; i <= l; i++)    {           if (i - k >= 1)            dp[i][2] = dp[i - 1][1] + dp[i - k][3];        else            dp[i][2] = dp[i - 1][1];        dp[i][1] = dp[i - 1][2];        if (i + k - 1 <= l)            dp[i][3] = dp[i - 1][2];    }    for (int i = 1; i <= l; i++)        ans += dp[i][1] + dp[i][3];    cout << ans << endl;}

转载地址:http://phod.baihongyu.com/

你可能感兴趣的文章
Mysql中触发器的使用示例
查看>>
Mysql中设置只允许指定ip能连接访问(可视化工具的方式)
查看>>
mysql中还有窗口函数?这是什么东西?
查看>>
mysql中间件
查看>>
MYSQL中频繁的乱码问题终极解决
查看>>
MySQL为Null会导致5个问题,个个致命!
查看>>
MySQL为什么不建议使用delete删除数据?
查看>>
MySQL主从、环境搭建、主从配制
查看>>
Mysql主从不同步
查看>>
mysql主从同步及清除信息
查看>>
MySQL主从同步相关-主从多久的延迟?
查看>>
mysql主从同步配置方法和原理
查看>>
mysql主从复制 master和slave配置的参数大全
查看>>
MySQL主从复制几个重要的启动选项
查看>>
MySQL主从复制及排错
查看>>
mysql主从复制及故障修复
查看>>
MySQL主从复制的原理和实践操作
查看>>
webpack loader配置全流程详解
查看>>
mysql主从复制,读写分离,半同步复制实现
查看>>
MySQL主从失败 错误Got fatal error 1236解决方法
查看>>