【JZOJ5182】 码灵鼠【数论,数学】

版权声明:若希望转载,在评论里直接说明即可,谢谢! https://blog.csdn.net/SSL_ZYC/article/details/83420132

题目大意:

题目链接:https://jzoj.net/senior/#main/show/5182
题目图片:
http://wx2.sinaimg.cn/mw690/0060lm7Tly1fwlvf1fyufj30j60a8dfz.jpg
http://wx3.sinaimg.cn/mw690/0060lm7Tly1fwlvf18v6hj30j30e93ym.jpg
已知 a 0 = 1 a_0=1 a i = a j + a k ( j , k [ 0 , 1... , k 1 ] ) a_i=a_j+a_k(j,k\in[0,1...,k-1]) ,求 a n a_n 的期望值向下取整。


思路:

题目大意: n + 1   P r o b l e m n+1\ Problem

证明:
首先,我们知道有
a n = ( 1 + 1 ) + . . . + ( 1 + n ) + ( 2 + 1 ) + . . . + ( 2 + n ) + . . . + ( n + n ) n 2 a_n=\frac{(1+1)+...+(1+n)+(2+1)+...+(2+n)+...+(n+n)}{n^2}
上式根据高斯求和得
a n = n n ( n + 1 ) 2 + n n ( n + 1 ) 2 n 2 a_n=\frac{n\frac{n(n+1)}{2}+n\frac{n(n+1)}{2}}{n^2}

a n = ( n + 1 ) n 2 n 2 = n + 1 a_n=\frac{(n+1)n^2}{n^2}=n+1
证毕。


代码:

#include <cstdio>
#define ll long long
using namespace std;

int t;
ll n;

int main()
{
	scanf("%d",&t);
	while (t--)
	{
		scanf("%lld",&n);
		printf("%lld\n",n+1);
	}
	return 0;
}

猜你喜欢

转载自blog.csdn.net/SSL_ZYC/article/details/83420132