這天,當一頭霧水的lzh同學在考場上痛哭的時候,一旁的ymw早就如切菜一樣cut掉了簡單至極的第一題,風輕雲淡的衝擊著滿分,然而最後一道題著實難道了他,畢竟是幼兒園副園長樹皮和著名毒瘤秋彪為了防止人ak而出的,可是ymw作為acrush的著名粉絲,向來以ak為目標,永不言敗,而他能不能ak就看你了
題目是醬紫的,f(n)-f(3)-f(4)-f(5)-…-f(n-3)-f(n-2)=(n+4)(n-1)/2,f(1)=1,f(2)=1
求f(n)的前n項和
輸入 乙個正整數n(保證0
<=n
<=2
31−
10<=n<=2^-1
0<=n
<=2
31−1
)輸出 乙個正整數,表示這個圖形的整點個數,需要對1000000007求餘
s am
pl
esample
sample
i np
ut
input
inpu
t#1
1
s am
pl
esample
sample
o ut
pu
toutput
output
#1
1
s am
pl
esample
sample
i np
ut
input
inpu
t#2
2
s am
pl
esample
sample
o ut
pu
toutput
output
#2
2
我們來演算一下這個式子
f(n)-f(3)-f(4)-f(5)-…-f(n-3)-f(n-2)=(n+4)(n-1)/2-------------------①
f(n)=f(3)+f(4)+f(5)+…+f(n-3)+f(n-2)+(n+4)(n-1)/2
f(n)=…+(n^2+3n-4)/2
f(n)=…+n^2/2+3n/2-2---------------②
由①得f(n+1)=f(3)+f(4)+f(5)+…+f(n-3)+f(n-2)+f(n-1)+((n+1)+4)((n+1)-1)/2
f(n+1)=…+f(n-1)+((n+1)+4)((n+1)-1)/2
f(n+1)=…+f(n-1)+n(n+5)/2
f(n+1)=…+f(n-1)+(n^2+5n)/2
f(n+1)=…+f(n-1)+n^2/2+5n/2-----------------③
然後看③其實比②只多了f(n - 1) + (n ^ 2 / 2 + 5n / 2 - n ^ 2 / 2 - 3n / 2 + 2)
也就是f(n - 1) + n + 2
所以f(n + 1) = f(n) + f(n - 1) + n + 2
然後再變一下,把n+1變為n
f(n + 1) = f(n) + f(n - 1) + n + 2
f(n + 1) = f((n + 1) - 1) + f((n + 1) - 2) + (n + 1) + 1
f(n) = f(n - 1) + f(n - 2) + n + 1
然後就可以按常規矩陣乘法做了
ps答案是算字首和
#include
#include
#include
#include
#define ll long long
using
namespace std;
const ll mod =
1000000007
;ll n;
struct wh_
a, k;
wh_ operator
*(wh_ a, wh_ b)
void
power
(ll m)
}int
main()
幼兒園數學題II
有公式 f n f 3 f 4 f 5 f n 3 f n 2 n 4 n 1 2,f 1 1,f 2 1。要你求前 n 項和。這道題我們可以化公式變成 f n f n 1 f n 2 n 1。首先,我們可以移項得到 f n f 3 f 4 f 5 f n 3 f n 2 n 4 n 1 2 然後把...
矩陣乘法 快速冪 幼兒園數學題I
description 某天,幼兒園學生lzh周測數學時嚇哭了,一道題都做不出來。這下可麻煩了他馬上就會成為墊底的0分啊。他的期望也不高,做出最簡單的第一題就夠了 題目是這樣的,定義f n 根號5 1 2 n 1 當然為了凸顯題目的簡單當然不能是小數分數或無理數,f x 因此需要向上取整,當然求f ...
SSL 2513 幼兒園數學題I 矩陣乘法
time limit 10000ms memory limit 65536k total submit 62 accepted 27 case time limit 1000ms description 某天,幼兒園學生lzh周測數學時嚇哭了,一道題都做不出來。這下可麻煩了他馬上就會成為墊底的0分啊...