蓝桥杯省赛模拟题错题整理

小明想知道,满足以下条件的正整数序列的数量:
1. 第一项为 n;
2. 第二项不超过 n;
3. 从第三项开始,每一项小于前两项的差的绝对值。
请计算,对于给定的 n,有多少种满足条件的序列。

dfs+记忆化

import java.util.*;
import java.math.*;
public class Main 
{
    static Scanner input = new Scanner(System.in);
    public static int n = input.nextInt();
    public static long ans=0;
    public static int p=1;
    public static int a[] = new int[100];
    public static long b[][] = new long[1000][1000];
    public static void main(String[] args) 
    {
        a[0] = n;
        for(int i=1;i<=n;i++)
        {
            a[p] = i;
            ans++;
            dfs(Math.abs(a[0]-a[1]));
        }
        System.out.println(ans%10000);
    }
    public static void dfs(int x)
    {
        for(int i=1;i<x;i++)
        {
            p++;
            a[p] = i;
            ans++;
            long aa=ans;
            if(b[a[p-1]][a[p]]!=0)
            	ans+=b[a[p-1]][a[p]];
            else
            	{
            	dfs(Math.abs(a[p]-a[p-1]));
            	b[a[p-1]][a[p]] = (ans-aa)%10000;
            	}
            a[p] = 0;
            p--;
        }
    }
}


全部评论

相关推荐

吐泡泡的咸鱼:我也工作了几年了,也陆陆续续面试过不少人,就简历来说,第一眼学历不太够,你只能靠你的实习或者论文或者项目经历,然后你没有论文,没有含金量高的比赛和奖项,只能看实习和项目,实习来说,你写的实习经历完全不清楚你想找什么工作?行研?数据分析?且写的太少了,再看项目,这些项目先不说上过大学读过研究生的都知道很水,然后对你想找的岗位有什么帮助呢?项目和实习也完全不匹配啊,你好像在努力将你所有的经历都放在简历里想表现你的优秀,但是对于你想找的岗位来说,有什么用呢?最后只能获得岗位不匹配的评价。所以你需要明白你想要找的岗位要求是什么,是做什么的,比如产品经理,然后再看你的经历里有什么匹配的上这个岗位,或者对这个岗位以及这个岗位所在的公司有价值,再写到你的简历上
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务