這裡有一個函數
unsigned long long cnt,sum,par;
__attribute__((optimize("O2")))
unsigned long long f(unsigned long long n)
{
cnt++; par+=n;
if(n<3) return n;
unsigned long long ret=a*f(n-1)+b*f(n-2)+c*f(n-3);
sum+=ret;
return ret;
}
一開始 $cnt=sum=par=0$,若給定 $a,b,c,n$ ,求 $f(n)$ 的值與呼叫 $f(n)$ 後 $cnt, sum, par$ 的值。
第一行有一個正整數$T$代表測資筆數。
每筆測資只有一行四個非負整數$a,b,c,n$,如題目所述。
$1\le T\le 10$
$0\le a,b,c\le 100$
40%測資符合$0\le n\le 40$
80%測資符合$0\le n\le 10^7$
100%測資符合$0\le n\le 10^{18}$
每筆測資輸出四個整數分別為 $f(n), cnt, sum, par$ 的值。
2 1 1 0 5 3 7 4 20
8 13 19 26 3038803244202 128287 4158028866539 281129
f(n), cnt, sum 的型態務必都使用 unsigned long long int,並讓它自然溢位。若使用不同型態可能會得到不同的結果而吃 WA。
P.S. 雖然出自梗題大賽但這題是正常好題而不是梗題xd
實際上如果再加個 sum2+=n*n 之類的都仍然可做,歡迎大家自己想想看xd
編號 | 身分 | 題目 | 主題 | 人氣 | 發表日期 |
沒有發現任何「解題報告」 |