【哈工程ACM选修课】随堂测试作业C. 递推函数0:50:35
描述
提交
自定义测试
返回比赛
题解视频
题目描述
函数 fxfx 定义如下
f(x)={xa1f(x−1)+a2f(x−2)+…+a10f(x−10)(x<10)(x>=10)
f(x)={x(x<10)a1f(x−1)+a2f(x−2)+…+a10f(x−10)(x>=10)
其中 ai(1≤i≤10)ai(1≤i≤10)取值为 00 或者 11。
输入
第一行输入两个数k,m(1≤k,m≤105)k,m(1≤k,m≤105)
第二行输入1010个整数分别表示aa数组
输出
输出f(k)f(k)对m取模的结果
样例输入1
13 100
0 1 1 0 1 1 1 0 0 0
样例输出1
80
数据规模与限定
时间限制:1 s
内存限制:64 M
入门组递推
#include<iostream>
using namespace std;
int a[11]={0};
int f(int x,int a[]){
if(x<10){
return x;
}
else{
int r=0;
for(int i=1;i<=10;i++){
r=r+a[i-1]*f(x-i,a);
}
return r;
}
}
int main()
{
int k,m;
cin>>k>>m;
for(int i=0;i<10;i++)cin>>a[i];
cout<<f(k,a)%m;
}