ACM_開掛的小G
阿新 • • 發佈:2018-07-10
現在 類型 game 重復 mes int 什麽 ava ac代碼
開掛的小G
Time Limit: 2000/1000ms (Java/Others)
Problem Description:
小G寒假在家沒網絡,閑著沒事幹又看不下書,就玩起了單機遊戲ACM_Game,不過,學計算機的怎麽能老玩別人的遊戲呢?自己做個?哦不,自己做的要是玩得不開心就會隨便改代碼啦,這樣就沒意思了。於是,小G費了點心思就給自己做了個ACM_Game輔助,讓自己角色的分數快速增長。有多快呢?程序運行後,第一秒增加1,第2秒增加4,第3秒增加9... 第n秒就增加n^2。小G知道,當n稍微大一點時,自己代碼裏的int就溢出了,所以他選用了64位的long long。但是,ACM_Game的開發者是個Acmer,他知道正常情況下都有可能被大神刷爆分數,於是他設定了遊戲裏的分數超過1000000007的,都會取個模1000000007(為什麽是這個數呢?因為他喜歡這個大質數)。 現在小G想知道第n秒後他有多少分數,假設一開始分數是0,當然他記性不至於差到需要重復查詢同一秒的結果。
Input:
多組數據,大約100000組吧,每組一個n(1<=n<=10000000)
Output:
輸出小G當前的分數
Sample Input:
100 1 3
Sample Output:
338350 1 14
解題思路:題目比較簡單,數據類型全部為長整型long long,避免數據溢出,水過!
AC代碼:
1 #include<bits/stdc++.h> 2 using namespace std; 3 typedef long long LL; 4 const LL maxn=10000005; 5 const LL mod=1000000007; 6 LL s[maxn]={0},n;7 int main(){ 8 for(LL i=1;i<maxn;++i)s[i]=(s[i-1]+i*i)%mod; 9 while(cin>>n)cout<<s[n]<<endl; 10 return 0; 11 }
ACM_開掛的小G