給定乙個長度為n的陣列a=[a1,a2, … an],請你將a拆分成3段連續的子陣列:
a1, a2, … ap | ap+1, ap+2, … aq | aq+1,aq+2, … an
令s1 = a1 + a2 + … ap
s2 = ap+1 + ap+2 + … aq
s3 = aq+1 + aq+2 + … an
問有多少種劃分方案可以使得s1, s2, s3兩兩相差不超過1.
n <= 100000, -1000000 <= ai <= 1000000
暴力解法:
複雜度o(n^2)
#include
#include
/*測試樣例
53 2 1 0 236
3 2 1 0 2 12*/
using
namespace std;
const
int maxn =
100005
;typedef
long
long ll;
int s[maxn]
;int
main()
ll ans =0;
ll s1, s2, s3;
for(
int i =
1; i <= n -
2; i++)}
}}cout << ans << endl;
return0;
}
下面使用雜湊優化:
#include
#include
#include
using
namespace std;
const
int maxn =
100005
;typedef
long
long ll;
ll sum[maxn]
;int a[maxn]
;mapint> mmp;
intmain()
for(
int i =
1; i <= n; i++)if
(i < n)
} ll ans =0;
ll s3 =0;
for(
int i = n; i >
1; i--)}
} cout << ans << endl;
return0;
}
保衛方案(京東2017筆試題)
戰爭遊戲的至關重要環節就要到來了,這次的結果將決定王國的生死存亡,小b負責首都的防衛工作。首都位於乙個四面環山的盆地中,周圍的n個小山構成乙個環,作為預警措施,小b計畫在每個小山上設定乙個觀察哨,日夜不停的瞭望周圍發生的情況。一旦發生外地入侵事件,山頂上的崗哨將點燃烽煙,若兩個崗哨所在的山峰之間沒有...
北京雲端微服科技2017筆試題
一 選擇題 1 string str 以下哪種寫法較為合理 4個答案都對,答案不確定 a str.equals ydwf b ydwf equals str c if str null ydwf equals str d if str null str.equals ydwf 2 下列寫法正確的是 ...
微軟筆試題 彙總
1.臨界變數critical section的概念 還有semaphore,thread類似的這些 程序進入臨界區的排程原則是 如果有若干程序要求進入空閒的臨界區,一次僅允許乙個程序進入。任何時候,處於臨界區內的程序不可多於乙個。如已有程序進入自己的臨界區,則其它所有試圖進入臨界區的程序必須等待。進...