Problem

1 /8


المبلغ على الخط

Theory Click to read/hide

يجب ألا يكون هناك بعض المصفوفة. في حالة عدم وجود تغييرات ، يمكننا بسرعة (أسرع من سطر) العثور على قيمة بعض الوظائف في جزء فرعي من هذه المصفوفة. للقيام بذلك ، نحتاج إلى استخدام ذاكرة إضافية وإجراء عملية حسابية مسبقة.
على سبيل المثال ، نحن بحاجة إلى إيجاد المجموع بسرعة في بعض أجزاء المصفوفة.
دعنا نحصل على مصفوفة من مجاميع البادئة ، حيث سيكون الفهرس i هو مجموع جميع عناصر المصفوفة التي تحتوي على مؤشرات أقل من أو تساوي i.
أ [] & - مجموعة معينة ، p [] & - مجموعة مجاميع البادئة


عدد الصفيف ص:
من الواضح أن p [0] = a [0]. لاحظ أنه يمكننا بسهولة إعادة حساب p [i] عبر p [i & ndash؛ 1] لأن المبلغ الموجود على البادئة i هو المبلغ الموجود على البادئة i & ndash؛ 1 + أ [i].
وبالتالي ، فإن الكود الخاص بحساب مجموع البادئات يبدو كما يلي:

 int  a [n]، p [n]؛
p [ 0 ]  =  a [ 0 < / span>]؛
 لـ  ( int  i  =   1 ؛ i  & lt؛  n؛ i  ++ )
         p [i]  =  p [i  -   1 ]  +  a [i]؛

علاوة على ذلك ، نلاحظ أن المجموع على القطعة - الفرق بين مجموعتي البادئة.


أخضر = أحمر & - أزرق
وبالتالي ، إذا كان من الضروري إيجاد المجموع في الفترة [l، r] ، فإن الإجابة هي p [r] & ndash؛ ص [ل -1].
ومع ذلك ، إذا l & ndash؛ قد لا يوجد عنصر واحد. من أجل الاستغناء عن if & rsquo ؛ s ، يمكنك إدخال 1-indexing ، وستكون لـ [0] و p [0] قيم محايدة (0 للمجموع).
نبسب ؛
لاحظ أن هذه التقنية هي حالة خاصة لصيغة التضمين والاستبعاد ، لذلك بهذه الطريقة يمكن تخزين ليس فقط المجاميع ، ولكن أيضًا وظائف أخرى ، مثل الضرب و xor.
نبسب ؛

Problem

إعطاء مصفوفة ثابتة من الطول n و q طلبات البحث مثل & ldquo ؛ احسب مجموع المصفوفة الفرعية من l إلى ص & rdquo ؛. اطبع الإجابة لكل طلب.

إدخال
يحتوي السطر الأول على رقم n & ndash؛ حجم المصفوفة ( \ (1 & lt؛ = n & lt؛ = 10 ^ 5 \) ). & nbsp؛ يحتوي السطر الثاني على أرقام n & ndash ؛ عناصر المصفوفة. لا تتجاوز أرقام المودولو \ (10 ​​^ 9 \) . & nbsp؛ يحتوي السطر الثالث على الرقم q & ndash؛ عدد الطلبات ( \ (1 & lt؛ = q & lt؛ = 10 ^ 5 \) ). & nbsp؛ متبوعة بـ q سطور ، كل منها منها رقمين: l و r ( \ (1 & lt؛ = l & lt؛ = r & lt؛ = n \ ) ).

الإخراج
اطبع الإجابات على جميع الاستعلامات ، كل منها في سطر منفصل. نبسب ؛

نبسب ؛

أمثلة <الجسم>
# إدخال الإخراج
1
5
1 2 3 4 5
3
1 2
3 3
2 5
3
3
14