2020年蓝桥杯第十一届校内赛真题解析--算法设计--正整数序列
2020-04-02 07:24
435 查看
2020年蓝桥杯第十一届校内赛真题解析--算法设计--正整数序列
比赛记录
本人于2020年3月14日14:00~18:00,参加了本校组织的校内模拟赛 。
本次校内模拟赛的感受较好,我觉得这次的难度适中,大家应该都可以取得自己理想的成绩。
问题描述
小明想知道,满足以下条件的正整数序列的数量:
1. 第一项为 n;
2. 第二项不超过 n;
3. 从第三项开始,每一项小于前两项的差的绝对值。
请计算,对于给定的 n,有多少种满足条件的序列。
输入格式
输入一行包含一个整数 n。
输出格式
输出一个整数,表示答案。答案可能很大,请输出答案除以10000的余数。
样例输入
4
样例输出
7
样例说明
以下是满足条件的序列:
4 1
4 1 1
4 1 2
4 2
4 2 1
4 3
4 4
评测用例规模与约定
对于 20% 的评测用例,1 <= n <= 5;
对于 50% 的评测用例,1 <= n <= 10;
对于 80% 的评测用例,1 <= n <= 100;
对于所有评测用例,1 <= n <= 1000。
解析
import java.util.Scanner; public class Main { static int[][] flag = new int[1001][1001]; //做标记值,表示当前n m 下能能有多少个符合要求的序列,后面再查到相同的n m的时候直接使用 public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int n =scanner.nextInt(); int count = 0; for (int i = 1; i <=n; i++) { //递归 count=count+f(n,i)%10000; } System.out.println(count%10000); } public static int f(int n,int m){ int count = 0; if(Math.abs(n-m)<=1){ return 1; } if(flag[n][m]!=0){ //当flag存在值时,意味着已经计算过,可以不用再做下面的遍历 return flag[n][m]; } for (int i = 0; i < Math.abs(n-m); i++) { if(i==0){ //当i==0得时候,也就是意味着当前已结束 举例 4 1 0 等同于4 1 '' ,那么0后面的也就不需要再做递归了,所以continue count++; continue; } count=count + f(m,i); } flag[n][m]=count; //计算完当前数据后存入flag,用做标记 return count%10000; } }
- 点赞
- 收藏
- 分享
- 文章举报
相关文章推荐
- 2020年蓝桥杯第十一届校内赛真题解析--算法设计--节目单
- 2020年蓝桥杯第十一届校内赛真题解析--算法设计--种草问题
- N个整数(数的大小为0-255)的序列,把它们加密为K个整数(数的大小为0-255).再将K个整数顺序随机打乱,使得可以从这乱序的K个整数中解码出原序列。设计加密解密算法,且要求K<=15*N.
- N个整数(数的大小为0-255)的序列,把它们加密为K个整数(数的大小为0-255).再将K个整数顺序随机打乱,使得可以从这乱序的K个整数中解码出原序列。设计加密解密算法,且要求K<=15*N.
- n个无序整数,已知第i个数在排好序的序列中的位置为j,满足|i-j|<=K,请设计一种排序算法,对该序列进行排序。注:算法时间复杂度为O(nlgn)的得0分,复杂度为O(nk) 的得两分,总分是20分
- 蓝桥杯 算法提高 三个整数的排序
- 蓝桥杯 ADV-211 算法提高 2-2整数求和
- 西南交通大学计算机学硕——数据结构真题1:2017年程序与算法设计题
- 数据结构:有人设计以下算法用于删除整数顺序表L中所有值在[x,y]范围内的元素,该算法显然不是高效的,请设计一个同样功能的高效算法。
- 蓝桥杯算法训练拦截导弹【最长上升子序列 & 最长非下降子序列nlogn 和 n^2】
- 西南交通大学计算机学硕——数据结构真题5:2006年程序与算法设计题
- 设计一个算法,讲一个头结点为A的单链表(其数据域)为整数分解成两个单链表A、B,使得A链表只含有原来链表中data域为奇数的结点,而B中只含有原表中data域为偶数的结点,保存原来的相对顺序。
- 方程整数解蓝桥杯真题
- 算法-蓝桥杯-入门训练 序列求和 (JAVA)
- 基于SIMD的AVS整数反变换算法设计与优化
- A、B两个整数集合,设计一个算法求他们的交集,尽可能的高效
- 算法笔记_210:第六届蓝桥杯软件类决赛真题(Java语言C组)
- 蓝桥杯 ALGO-90 算法训练 出现次数最多的整数
- [算法设计与分析]4.3.4二分法不独立的情况(数列最大字段和+大整数乘法)
- 蓝桥杯 算法训练 出现次数最多的整数