智慧的邓布利多
?
?
哈利與鄧布利在尋找魂器的過程中,被困在了魔法陣中,這個(gè)魔法陣由n個(gè)石板構(gòu)成,石板從小到大排成一列。鄧布利多仔細(xì)觀察著些石板,發(fā)現(xiàn),每個(gè)石板可以近似的看成腰長為XnX_nXn?厘米的等腰直角三角形(Xn=1,2,3,4,…n X_n=1,2,3,4,…n Xn?=1,2,3,4,…n)。這時(shí),鄧布利多對哈利說:“試試將石板放在坐標(biāo)系中吧”(放置方法固定,見樣例),哈利于是將石板放在了坐標(biāo)系上,發(fā)現(xiàn),正整數(shù)坐標(biāo)的位置(x=0,1,2,3,4...... ;y=0,1,2,3,4........)發(fā)出了淡淡的熒光,鄧布利多思考,想要破解這個(gè)魔法陣,需要數(shù)出這n個(gè)等腰直角三角形石板上的所有的熒光標(biāo)記有多少個(gè)。輸出結(jié)果取mod2048
Input
?
輸入一個(gè)正整數(shù)n(2≤n≤1,500,000,0002 \leq n \leq 1,500,000,0002≤n≤1,500,000,000)
Output
?
n個(gè)石板上的熒光標(biāo)記一共有多少個(gè)
Sample Input 1
2 3 7Sample Output 1
9 19 119Hint
當(dāng) n=1n=1n=1有一個(gè)石板腰長XnX_nXn?為1等腰三角形石板放在坐標(biāo)系一共有三個(gè)熒光標(biāo)記,分別是(0,0),(1,0)(1,1)。所以輸出3
當(dāng) n=2n=2n=2有兩個(gè)石板
腰長Xn=1X_n=1Xn?=1 等腰三角形石板放在坐標(biāo)系一共有三個(gè)熒光標(biāo)記,分別是(0,0),(1,0)(1,1)
腰長Xn=2X_n=2Xn?=2 等腰三角形石板放在坐標(biāo)系一共有三個(gè)熒光標(biāo)記,分別是(0,0),(1,0)(2,0),(2,1),(2,2)(1,1)
所以2個(gè)石板一共 9 個(gè)熒光點(diǎn)!
1+2+3+.......+n=n?(1+n)/2
1^2 + 2^2 + 3^2+.......+n^2=n(n+1)(2n+1)/6
1^3+2^3+3^3+......... +n^3=[n*(n+1)/2]^2
?
利用等差數(shù)列的求和公式可以得到每一個(gè)an,之后在把這些an加起來就是答案,通過計(jì)算可以得知an=(n*n+3*n+2)/2,由題意可知1^2 + 2^2 + 3^2+.......+n^2=n(n+1)(2n+1)/6,1+2+3+.......+n=n?(1+n)/2,通過求解可以得到ans=(n*(n+1)*(2*n+1)/6+3*n*(n+1)/2+2*n)/2;
代碼:
#include <iostream> using namespace std; const int MOD=2048;int main() {long long n; scanf("%lld",&n); n%=MOD; long long ans=0; ans=n*(n+1)*(2*n+1)/6+3*n*(n+1)/2+2*n;ans/=2;cout<<ans%MOD<<endl; return 0; }?
?
?
總結(jié)
- 上一篇: codeforces div2 C.
- 下一篇: codeforces div3 D