資料結構篇 1034 毀滅者問題(C )

2021-08-30 09:06:39 字數 1224 閱讀 9008

時間限制:10000ms

單點時限:1000ms

記憶體限制:256mb

在 warcraft iii 之冰封王座中,毀滅者是不死族打三本後期時的乙個魔法飛行單位。

毀滅者的核心技能之一,叫做魔法吸收(absorb mana):

現在讓我們來考慮下面的問題:

假設你擁有 n 個魔法單位,他們從左到有站在一行,編號從 1 到 n。 每個單位擁有三項屬性:

現在你操縱乙個毀滅者,有 m 個操作,t

lr,表示時刻 t,毀滅者對所有編號從 l 到 r 的單位,使用了魔法吸收。操作按照時間順序給出,計算毀滅者一共吸收了多少法力。

輸入資料的第一行有乙個整數 n(1 ≤  n ≤105) — 你的魔法單位的數目。

接下來的 n 行,每行有三個整數 s

i, m

i, r

i(0 ≤ s

i ≤ m

i ≤ 105, 0 ≤ r

i ≤ 105) 描述乙個魔法單位。

接下來一行又乙個整數 m(1 ≤ m ≤ 105), — 操作的數目。

接下來的 m 行,每行描述乙個操作 t, l, r(0 ≤ t ≤ 109, 1 ≤ l ≤ r ≤ n),t 非降。

輸出一行乙個整數表示毀滅者一共吸收了多少法力。

樣例輸入

5

0 10 1

0 12 1

0 20 1

0 12 1

0 10 1

25 1 5

19 1 5

樣例輸出

83
using system;

using system.collections.generic;

public class program

}public static int absorbmagic(listmagics,int t,int l,int r)

}for(int i = l;i<=r;i++)

return magicvalue;

}static void main(string args)

m = convert.toint32(console.readline());

for(int i=0;i

console.writeline(currentmagicvalue);}}

C 資料結構篇(堆疊

菸快沒有了,別人都說煙有害,但對與我可是必不可少的,呵呵。抽一根煙程式就寫出來了,好了,再加把勁,我們再完成堆疊,其實堆疊和線性表沒什麼大的區別,堆疊其實是一種特殊的線性表,使用push 壓輸入資料,pop 彈出資料,才用,先進後出的原則,就這麼簡單。前面已經寫好了list 類,在這裡我們可以呼叫它...

C 資料結構篇(佇列類)

在實現堆疊類之後,我們來實現佇列類,其實佇列也是鍊錶的擴充套件,它其實是一種特殊的鍊錶,如堆疊一樣,它和堆疊的不同在於,堆疊採用的是先進後出原則,而對列採用的是先進先出原則。什麼是先進後出呢?在日常生活中也到處可見它,比如 買火車票,大家都要排隊,先來的先買票,後來的在後面排隊,在隊伍中隨便插入是不...

C 資料結構篇(鍊錶類)

首先定義結點型別,定義了,前乙個指標域,後乙個指標域,如下 using system namespace list 前乙個public listnode previous 後乙個public listnode next 值public int value using system namespace...