博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Aizu - 1378 Secret of Chocolate Poles (DP)
阅读量:5075 次
发布时间:2019-06-12

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

你有三种盘子,黑薄,白薄,黑厚。

薄的盘子占1,厚的盘子占k。

有一个高度为L的桶,盘子总高度不能超出桶的总高度(可以小于等于)。相同颜色的盘子不能挨着放。

问桶内装盘子的方案数。

 

如 L = 5,k = 3时的方案数为6(下图)

 

Sample Input15 3Sample Output 16Sample Input 29 10Sample Output 25Sample Input 310 10Sample Output 36Sample Input 420 5Sample Output 486Sample Input 5100 2Sample Output 53626169232670

  

 

 

 

 

很简单的DP。

注意好 k 和当前枚举到的位置的关系。

f[i][1]表示黑薄,f[i][2]白薄,f[i][3]黑厚。 

 

 

#include 
#include
#include
using namespace std;typedef long long LL;const int maxn = 100+100;LL f[maxn][4];int main(){ int l, k; scanf("%d%d", &l, &k); f[1][1] = 1; f[1][3] = (k <= l ? 1 : 0); for (int i = 2; i <= l; i++) { f[i][1] = f[i-1][2]; f[i][2] = f[i-1][1] + (i-k > 0 ? f[i-k][3]:0); if (l-i+1 >= k) f[i][3] = f[i-1][2]; } LL ans = 0; for (int i = 1; i <= l; i++) ans += f[i][1] + f[i][3]; printf("%lld\n", ans);}

 

转载于:https://www.cnblogs.com/ruthank/p/9546802.html

你可能感兴趣的文章
.NET 开发: 确定计算机上已安装的 .NET Framework 版本
查看>>
Python进阶05 循环设计
查看>>
关于Cocos2d-x手机上运行游戏的时候屏幕横屏改竖屏的解决方案
查看>>
QT qRegisterMetaType 注册MetaType
查看>>
常用类的课后作业
查看>>
svg 矢量图
查看>>
PHP PDO函数库详解
查看>>
机器学习之线性回归
查看>>
【Golang 接口自动化00】为什么要用Golang做自动化?
查看>>
Python图表绘制:matplotlib绘图库入门(转)
查看>>
2019 GPL 天梯赛总结
查看>>
字符串问题----去掉字符串中连续出现K个0的子串
查看>>
设计模式之建造者模式
查看>>
asp.net mvc源码分析-ModelValidatorProviders
查看>>
【Mac系统】istatmenus6.20下载以及激活
查看>>
repeter选中行变色
查看>>
Python_15函数
查看>>
获取到某一方法的调用者的类名、方法名、命名空间(转)
查看>>
Vector与ArrayList的分析
查看>>
【BZOJ-4310】跳蚤 后缀数组 + ST表 + 二分
查看>>