已知有乙個n+1個數的數列,對於給定的a0和an ,當i滿足當1<=i<=n-1時有
現在小星想知道對於這個數列一段區間的和。
第一行輸入四個數 n,a0,an,q接下來q行 每行輸入兩個數l,r
0=< n,a0,an<=1e9,q<=100000
0<=l<=r<=n
對於每組查詢輸出al到ar的和示例1
3 0 3 21 11 3
16
為了對萌新表現出友好,資料保證了對於ai的每一項都是整數今天比賽遇上這個題,開始以為要用到組合數,而且資料比較大,可能會超時,一時間沒有思路。
比賽快結束時發現
可以化簡為 ai=(a0*(n-i)+an*j)/n 把組合數消掉了,極大加快運算速度,將每項依次算出來再相加,於是匆匆寫好了**,提交後發現過了百分之20,後面的超時了,比賽結束了我還沒找到原因翻看別人的**,發現他沒用用到累加,看樣子有通式,突然我想到了等差數列的求和公式,ai確實滿足等差數列的通項,寫好**又發現沒過
#include #includeview code#include
#include
#include
#include
#include
#include
#include
using
namespace
std;
intmain()
}return0;
}
想了很久想到可能會爆掉資料,把那些an m l r不超過int範圍的資料改成long long後就ac了,做個題真不容易
雖然那些資料不會爆,但是它們在計算過程中會爆掉,比如 m和n都是int型別 m+n超過int範圍的話會使m+n的結果出錯
做這道題真是不容易啊
E 這是乙個數學題
已知有乙個n 1個數的數列,對於給定的a 0和an 當i滿足當1 i n 1時有 現在小星想知道對於這個數列一段區間的和。第一行輸入四個數 n,a0,an,q接下來q行 每行輸入兩個數l,r 0 n,a 0,an 1e9,q 100000 0 l r n 對於每組查詢輸出al 到ar的和 3 0 3...
牛客訓練賽25 A 因數個數
題目鏈結 無語。這題很迷啊,原諒我的菜,剛開始想用預處理尤拉篩和字首和,可是這題太血崩了,這樣一樣要遍歷,1 e9的範圍,後來翻網上題解,發現其實是個還算經典的問題 這題可以用離散和做嘛,如何離散和?先別著急,我們先想想,為啥這題不用尤拉函式做。我們平時尤拉函式的題,都還能算比較難的題了,這題不僅僅...
牛客寒假第一場訓練賽
比賽鏈結 題解b題 構造題先找構造括號效率比較高的方法 這種括號裡面套括號效率比較高而且合法 所以思路就是對所給整數開方,剩餘的零頭我們用列舉的方法。但是對於一些資料直接用開方得到的數x構造的話,會導致零頭太小,不好構造零頭 第一步構造的是乙個對稱的括號,有x個左括號,如果零頭小於x的話,就不好構造...