题意(转换后):给你一个n,问在满足x+y+a+b=n的情况下,x+5y+10a+50b有多少种不同的结果
结论:当n≤11的时候直接暴力,n≥12满足F(i)=F(i-1)+49
思路:假设有这样道题:你有1元,5元,10元,50元纸币若干张,问你能组成多少种不同面值,你会发现只要能用9张纸币,那么就可以组成1~50中的任意一个面额(需要最多的是49=10+10+10+10+5+1+1+1+1刚好9张)
#include<stdio.h>
#define LL long long
LL ans[15] = {0,4,10,20,35,56,83,116,155,198,244};
int main(void)
{
int n;
scanf("%d", &n);
if(n<=10)
printf("%I64d\n", ans[n]);
else
printf("%lld\n", ans[10]+(LL)(n-10)*49-1);
return 0;
}