Shirlies
宁静专注认真的程序媛~
posts - 222,comments - 49,views - 71万

随笔分类 -  acm_递推

hdu 1297
摘要:如果在f(n-1)的后面再加一个m,序列仍然是合法的,如果在f(n-2)后面再加一对ff,结果仍然是合法的,还有一种情况来着,就是如果结尾时mf的话,再在后面加f,结果会变成合法的,但是和f(n-2)后加ff重复,所以应该加ff.所以最后就是f(n)=f(n-1)+f(n-2)+f(n-4)了。#include "stdio.h"#include "string.h"char s[1002][400];int main(){int n;int i,j;int len=1,l,carry;int a;char b[400],t;memset(s,0,siz 阅读全文
posted @ 2012-02-16 21:46 Shirlies 阅读(731) 评论(0) 推荐(0) 编辑
hdu 2604
摘要:考虑第n中,如果在第n-1中后面加m的话,就有f(n-1)中,如果加f的话还得考虑f(n-1)末尾的字母,如果f(n-1)末尾两位是mm和mf的话,在后面再加上f是不会出现O型的,mm型的好说,就是f(n-3)的后面加上mm就可以了,如果是mf的话还得考虑必须得是f(n-4)的后面加上mmf,所以总结为f(n)=f(n-1)+f(n-3)+f(n-4).但是这个题目的L值有点大,这一题我是险过的,还差点就超时了……#include "stdio.h"int main(){int l,m;int f[5];int i;while(scanf("%d%d", 阅读全文
posted @ 2012-02-15 21:01 Shirlies 阅读(522) 评论(0) 推荐(0) 编辑
hdu 2563
摘要:分两种情况,如果向上的话就有三种走法,一种向上,一种向左,一种向右,如果是向左(右)走,就有两种走法,一种向上,一种向左(右),然后继续分方向讨论……用一个二维数组,一个存储向上方向的步数,一个存储另外两个方向的步数,最后求和就可以了……#include "stdio.h"int main(){int T,n;__int64 s[2][32]={1,0};int i;for(i=1;i<=30;i++){s[0][i]=s[0][i-1]+s[1][i-1];s[1][i]=2*s[0][i-1]+s[1][i-1];}scanf("%d",&am 阅读全文
posted @ 2012-02-15 19:50 Shirlies 阅读(336) 评论(0) 推荐(0) 编辑

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示