文章分类 - acm 递推求解专题
摘要:我用到了两个数组,d1[n]表示长度为n的牛肉串最后一个字符不是'O',d2[n]表示长度为n的牛肉串最后一个字符是'O'。这样结果就是d1[n]+d2[n];对于已经得到了长度为n-1的牛肉串,我们可以来讨论在第n个位置放置何种字符的牛肉串。 已得到第n-1个位置的字符第n个位置需要放置的字符结果不是'O'不是'O'得到长度为n的,结尾不是'O'的字符串不是'O'是'O'得到长度为n的,结尾是'O'的字符串是'O'不是'O'得到长度为
阅读全文
摘要:看图,添加一个方格之后,给后面的排序多了一次方格横着放的机会所以fn=f(n-1)+f(n-2);f(n-1)同样适用于fn,因为无论怎样都可以加一个竖着的,加多一格提供了一次f(n-2)与两根横的拼放#include<stdio.h>__int64 d[50];int main(){d[0]=1;d[1]=2;for(int i=2;i<50;i++){d[i]=d[i-1]+d[i-2];}int n;while((scanf("%d",&n))!=EOF){printf("%I64d\n",d[n-1]);}getchar
阅读全文
摘要:分析:由于 a,b相差最多是1,49 所以用__int64 [48],提交的时候用C++才对d[0]=1,d[1]=2将这个数列存储起来 最后输出d[b-a-1],数组代替了f函数;f1=1f2=2f3=f1+f2;由图可以看出 结构都是一样,只要观察一下就知,规律是两个数相差几个,图片的结构是相同的所以考虑用递推Int64是有符号 64 位整数数据类型,相当于C++中的long long、 C# 中的 long 和 SQL Server 中的 bigint,表示值介于 -2^63 ( -9,223,372,036,854,775,808) 到2^63-1(+9,223,372,036,854
阅读全文
摘要:总结:递推求解的基本方法1、首先,确认:能否容易的得到简单情况的解?2、然后,假设:规模为N-1的情况已经得到解决3、最后,重点分析:当规模扩大到N时,如何枚举出所有的情况,并且要确保对于每一种子情况都能用已经得到的数据解决。n强调: 1、编程中的空间换时间的思想 2、并不一定只是从N-1到N的分析举例n有5人坐在一起,当问第5个人多少岁,他说比第4个人大2岁,问第4个人多少岁,他说比第3个人大2岁,依此下去,问第一个人多少岁,他说他10岁,最后求第5个人多少岁?n如果所坐的不是5人而是n人,写出第n个人的年龄表达式。化简之后F(n)=10+(n-1)*2
阅读全文

浙公网安备 33010602011771号