灰暗而空虚的景色β(数学思维题)
鏈接真的被這題坑慘了。。哎
 題目:
“雪啊。”
 “雪是紅色的。”
 像壞掉的復讀機一樣,梓川咲太只能把閃爍的思緒斷斷續續的說出來。
 “這,是夢吧。”
 從口中滑出的卻是這樣的話。
 回過神的時候,天空即將被冰冷黑暗的天空吞沒,而自己已經站在湘南臺站附近的圖書館的門口。那是第一次遇見櫻島麻衣的地方,是一切的開端。
 無所謂了,已經沒有可以稱為家而能回去的地方了。就在梓川咲太開始自暴自棄的躺在地上任由黑暗吞噬的時候。
 眼前突然出現了穿著白大褂的年輕女子,在昏暗的路燈下,隨風飄揚的似乎是紅色的秀發。
 “不要去輕易的改變過去。”開口便是這么難懂的話。
 “打個比方,對于一個長度為n,所有元素都為0的數列。每次操作都選取一個位置,使得從這個位置往后都變成1,4,9,16…i^2 ”
 “不可思議啊,為什么我一直在,為什么你們,一直在讓我做這種數學題。”梓川咲太快瀕臨崩潰了。
 “為了拯救櫻島麻衣和牧之原翔子。這樣的理由夠充分嗎?”那位女子的一句話,讓咲太的精神從深海下看到一束光。
 “你能計算出經過這么多次操作以后變得面目全非的數列的和嗎?”
 “不可隨便改變過去,就剛才那個比方來說,如果有很多次這樣的操作,那么這個數列的和也很難計算吧。”
 “可你現在就是面臨這個問題哦。計算出那個數列的和,你一定能夠知道答案。”這是只有擁有確信的心的人才能說出來的話。
 “算出來以后呢。”梓川咲太還需要最后一塊拼圖。
 “去找牧之原翔子吧,一切因她而始,也必定一切因她而終。”
 時間的流動在慢慢的將咲太喚回現實。
 “許多失敗了的未來,無法挽回的過去,但是肯定在這之后,會有連接到…”
 熟悉的話語再次傳來。但話語的主人已經消失在夜空里。
 Input
 第一行輸入一個數字T(T<=10)表示數據有多少組;
 每一組數據第一行包含兩個整數n(1<=n<=1e9),Q(Q<=5e4),分別表示數列的長度以及操作的個數。
 接下來的Q個數按照操作的時間順序給出每次操作選擇的位置.
 Output
 輸出一個數字表示這個數列的和,由于答案可能很大,所以你需要將答案mod 123456789。
 Sample Input
 1
 3 2
 3
 1
 Sample Output
 14
首先,一個公式很重要:
 
 還有一個很類似但是用不到的
數列an=1 2 3 …… n=n(n 1)/2
 n(n 1)(n 2)/6是數列{an}的前n項和
 (來源百度)
首先分析一下這題的數據不能暴力,不能打表,只能使用某種數學方法。上述公式就是求值。另外,分析題目,其實真正改變串串大小的值的是靠前的位置和后出現的位置。那么可以從后往前看,先標記index為n 1,從后往前遍歷b的數值發現只有數值小于index時候會更新部分值。增加的就是兩個新舊點之間的距離長度的平方之和。如果大于index肯定不會更新數值的。
 思路雖然明確的,但是對于java這題很坑的。n*(n 1)(n 2)會超出long范圍,但是c 的int64可以用。如果Java的話可以考慮大數或者預處理。將除號除掉然后快速冪。
 先把(n%mod)((n 1)%mod)處理了。然后再處理第三個,如果三個一塊依然超出long范圍。只能兩兩。
 附上ac代碼(沒用大數)
哎,?,都是淚。
 如果對后端、爬蟲、數據結構算法等感性趣歡迎關注我的個人公眾號交流:bigsai
總結
以上是生活随笔為你收集整理的灰暗而空虚的景色β(数学思维题)的全部內容,希望文章能夠幫你解決所遇到的問題。
                            
                        - 上一篇: 把所有的谎言献给你β(找规律数学题)
 - 下一篇: 操作系统之进程调度——优先权法和轮转法(