給出乙個陣列,求出所有區間和的總和
312
3
20
對於30%的資料:1⩽n
⩽100
1\leqslant n\leqslant 100
1⩽n⩽10
0對於50%的資料:1⩽n
⩽1000
1\leqslant n\leqslant 1000
1⩽n⩽10
00對於100%的資料:1⩽n
⩽100000
1\leqslant n\leqslant 100000
1⩽n⩽10
0000
直接列舉所有區間會tle
那我們從每個數下手
每個數可能在多少個區間**現呢
首先可以發現區間的最前端要小於等於i(i
種可能)
i(i種可能)
i(i種可能
),最後端要大於等於i(n
−i+1
種可能)
i(n-i+1種可能)
i(n−i+
1種可能
)於是我們直接那兩個數相乘然後乘上a[i
]a[i]
a[i]
在求和即可
#include
using
namespace std;
long
long n,a,ans;
intmain()
printf
("%lld"
,ans)
;}
區間和的錯誤
假定有乙個無限長的數軸,數軸上每個座標上的數都是0。現在,我們首先進行 n 次操作,每次操作將某一位置x上的數加c。接下來,進行 m 次詢問,每個詢問包含兩個整數l和r,你需要求出在區間 l,r 之間的所有數的和。輸入格式 第一行包含兩個整數n和m。接下來 n 行,每行包含兩個整數x和c。再接下裡 ...
SqlCe和SQLite的對比試驗 結論
前端時間做wince手持機應用時,用到了sqlce,在sql ce的資料流讀寫裡頭,我想插入資料,就直接把資料插入進去 1 public static void insertintosqlce 2 1213 tran.commit 14 15 閒暇之餘,順手測試了一下sqlite的效率 簡單的插入 ...
區間和問題
假定有乙個無限長的數軸,數軸上每個座標上的數都是0。現在,我們首先進行 n 次操作,每次操作將某一位置x上的數加c。近下來,進行 m 次詢問,每個詢問包含兩個整數l和r,你需要求出在區間 l,r 之間的所有數的和。輸入格式 第一行包含兩個整數n和m。接下來 n 行,每行包含兩個整數x和c。再接下裡 ...