NYOJ108士兵殺敵(一)

2021-07-11 09:14:24 字數 754 閱讀 1019

一開始竟然用的vector儲存的第i項到第j項的和,果斷爆掉了記憶體呢,我真的是醉了。。

用乙個陣列儲存前k項的和,例如 b[k] = a[1] + ... + a[k] 的和,然後就不說了,都是淚。。(用時244ms)

**:

#include #include using namespace std;

const int maxn = 1e6;

int b[maxn + 5];

int a[maxn + 5];

int main()

for(int i = 1;i <= n;++i)

while(m--)

printf("%d\n",b[d] - b[c] + a[c]);

}return 0;

}

還有一種用樹狀陣列的方法,用時316ms

**:

#include const int maxn = 1e6;

int a[maxn + 5];

int c[maxn + 5];

int n,m;

void add(int k,int num)

}int query(int k)

return sum;

}int main()

while(m--)

printf("%d\n",query(y) - query(x - 1));

}return 0;

}

nyoj 108 士兵殺敵(一)

時間限制 1000 ms 記憶體限制 65535 kb 難度 3 描述 南將軍手下有n個士兵,分別編號1到n,這些士兵的殺敵數都是已知的。小工是南將軍手下的軍師,南將軍現在想知道第m號到第n號士兵的總殺敵數,請你幫助小工來回答南將軍吧。注意,南將軍可能會問很多次問題。輸入 只有一組測試資料 第一行是...

NYOJ 108 士兵殺敵(一)

時間限制 1000 ms 記憶體限制 65535 kb難度 3 描述 南將軍手下有n個士兵,分別編號1到n,這些士兵的殺敵數都是已知的。小工是南將軍手下的軍師,南將軍現在想知道第m號到第n號士兵的總殺敵數,請你幫助小工來回答南將軍吧。注意,南將軍可能會問很多次問題。輸入 只有一組測試資料 第一行是兩...

NYOJ 108士兵殺敵(一)

時間限制 1000 ms 記憶體限制 65535 kb 難度 3 描述 南將軍手下有n個士兵,分別編號1到n,這些士兵的殺敵數都是已知的。小工是南將軍手下的軍師,南將軍現在想知道第m號到第n號士兵的總殺敵數,請你幫助小工來回答南將軍吧。注意,南將軍可能會問很多次問題。輸入只有一組測試資料 第一行是兩...