這題本來交上去就超時了, 然後自己就囧了.... 不知道該用什麼更高階的結構了...
看到的是和我一樣的思路, 但怎麼就過了呢.. 仔細看了下, 別人的更新都是從當前點更新到0位置.
然而我是從當前點, 更新到陣列的結尾, 結果就不行了.
然後自己改了下**就過了......感覺是資料出的問題,偏向了某一邊把....
用線段樹是不是會更好呢?
view code
1 #include 2 #include 3 #include4using
namespace
std;
5const
int maxn = 1000005;6
intans[maxn], n;
7int lowbit(intx)8
1112
int getsum(int
x)13
1920
int mod(int x, int
num)
2126
27int
main()
2842
else
4347}48
return0;
49 }
NYOJ123 士兵殺敵(四)
includeconst int n 1000002 struct tree tree tree n 2 void build int root,int l,int r void insert int root,int b,int e,int v int m tree root left tree ...
NYOJ 123士兵殺敵(四)
時間限制 2000 ms 記憶體限制 65535 kb 難度 5 描述 南將軍麾下有百萬精兵,現已知共有m個士兵,編號為1 m,每次有任務的時候,總會有一批編號連在一起人請戰 編號相近的人經常在一塊,相互之間比較熟悉 最終他們獲得的軍功,也將會平分到每個人身上,這樣,有時候,計算他們中的哪乙個人到底...
nyoj 123 士兵殺敵 四
描述 南將軍麾下有百萬精兵,現已知共有m個士兵,編號為1 m,每次有任務的時候,總會有一批編號連在一起人請戰 編號相近的人經常在一塊,相互之間比較熟悉 最終他們獲得的軍功,也將會平分到每個人身上,這樣,有時候,計算他們中的哪乙個人到底有多少軍功就是乙個比較困難的事情,軍師小工的任務就是在南將軍詢問他...