Java实现 蓝桥杯 算法提高 递推求值

该博客介绍了如何使用Java编程语言解决蓝桥杯算法竞赛中关于递推求值的问题。题目要求根据给定的递推公式,计算F(n, 1)和F(n, 2)的值,并对结果取模99999999。内容涉及到大数处理和动态规划策略。" 133322411,20039151,Java实现素数判断算法详解,"['Java', '编程', '算法实现', '数学', '程序设计']
摘要由CSDN通过智能技术生成

算法提高 递推求值
时间限制:1.0s 内存限制:256.0MB
问题描述
  已知递推公式:

F(n, 1)=F(n-1, 2) + 2F(n-3, 1) + 5,

F(n, 2)=F(n-1, 1) + 3F(n-3, 1) + 2F(n-3, 2) + 3.

初始值为:F(1, 1)=2, F(1, 2)=3, F(2, 1)=1, F(2, 2)=4, F(3, 1)=6, F(3, 2)=5。
  输入n,输出F(n, 1)和F(n, 2),由于答案可能很大,你只需要输出答案除以99999999的余数。
输入格式
  输入第一行包含一个整数n。
输出格式
  输出两行,第一行为F(n, 1)除以99999999的余数,第二行为F(n, 2)除以99999999的余数。
样例输入
4
样例输出
14

21
数据规模和约定
  1<=n<=10^18。

import java.util.Scanner;


public class 递推求值 {
	static final int mod=99999999;
	static long num[]=new long[] {6,5,1,4,2,3,1};
	static long n,ans1,ans2;
	static class Matrix{
		long mat[][]=new long[7][7];
		Matrix multi(Matrix a) {       //矩阵乘法
			Matrix rec=new Matrix();
			for(int i=0;i<7;i++) {
			
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值