projecteuler No.116,117 Red, green, blue tiles

本文探讨了利用动态规划解决两个经典问题:方块的替换方法数量及使用不同型号的砖块铺设一行的方法。详细介绍了动态规划的状态转移方程,并提供了具体的代码实现,适合初学者理解和掌握动态规划在实际问题中的应用。

题目链接:


Problem 116 Red, green or blue tiles

题目116:考察方块的替换方法的数量

Problem 117 Red, green and blue tiles

题目117:考察使用不同型号的砖块铺满一行的方法。


通过人数:

NO.116 6169 

NO.117 5683


题目分析:

这两道题都是典型的动态规划题目,都是比较简单的,内容关联比较大,就放在一起了。


解题过程(代码仅供参考,因为偷懒,代码风格什么的实在不好意思...)

【动态规划的状态转移方程比较简单,就不做过多说明了,只粘贴代码。】

//No.116
int p116 ()
{
	long long int a[100]={0};
	long long int b[100]={0};
	long long int c[100]={0};
	a[1]=1;a[2]=2;
	b[1]=1;b[2]=1;b[3]=2;
	c[1]=1;c[2]=1;c[3]=1;c[4]=2;
	for (int i=3;i<=50;i++)
		a[i]=a[i-1]+a[i-2];
	for (int i=4;i<=50;i++)
		b[i]=b[i-1]+b[i-3];
	for (int i=5;i<=50;i++)
		c[i]=c[i-1]+c[i-4];
	long long int ans=a[50]+b[50]+c[50];
	return 0;
}


//No.117
int p117 ()
{
	long long int a[100]={0};
	a[1]=1;a[2]=2;a[3]=4;a[4]=8;
	for (int i=5;i<=50;i++)
		a[i]=a[i-1]+a[i-2]+a[i-3]+a[i-4];
	long long int ans=a[50];
	return 0;
}





以上只是我做题时的解法。

如果有更好的解法、更好的思路,欢迎评论讨论~O(∩_∩)O~


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值