我們建造了乙個大專案!這個專案有n個節點,用很多邊連線起來,並且這個專案是連通的!
兩個節點間可能有多條邊,不過一條邊的兩端必然是不同的節點。
每個節點都有乙個能量值。
現在我們要編寫乙個專案管理軟體,這個軟體呢有兩個操作:
1.給某個專案的能量值加上乙個特定值。
2.詢問跟乙個專案相鄰的專案的能量值之和。(如果有多條邊就算多次,比如a和b有2條邊,那麼詢問a的時候b的權值算2次)。
解題報告:這個題比賽的時候也是暴力沒過,當時是自己寫的鄰接表,後來用stl,還是沒過,但是我看到很多人都說這題暴力是可以過的,很好奇,有什麼區別,經過大量的實驗後我發現,這題的更新操作明顯要多餘查詢操作,我用的方法更新操作的時間複雜度是o(n),然後查詢操作的時間複雜度是o(1),很明顯做了很多無用功,如果反過來,更新操作的時間複雜度是o(1),查詢操作的時間複雜度是o(n)的話,很明顯時間要短很多,而且**是差不多的。其實還得怪這題資料出的有問題,同樣的演算法,不同的結果,唉。還有就是我發現雖然用的後面的結果,如果stl選用不同的容器的話,結果還是不一樣的,通過比較得出如果只是用來這題的話,這題中的操作只有在兩端插入資料,以及順序遍歷,發現用vector是最快的,我試過deque,list,multiset,都過不了,由此可見,在只有插入以及順序遍歷時,vector要比其它容器快很多。
HDU 4858 專案管理
我們建造了乙個大專案!這個專案有n個節點,用很多邊連線起來,並且這個專案是連通的!兩個節點間可能有多條邊,不過一條邊的兩端必然是不同的節點。每個節點都有乙個能量值。現在我們要編寫乙個專案管理軟體,這個軟體呢有兩個操作 1.給某個專案的能量值加上乙個特定值。2.詢問跟乙個專案相鄰的專案的能量值之和。如...
hdu 4858專案管理 分塊
知識點 graph分塊 hdu 4858專案管理 有n 個頂點m條邊的無向圖。有 q 次操作 操作一 將所有與 u相連的頂點權值加 v 操作二 查詢頂點 u的權值。資料範圍 1 n 100000,1 m n 10,0 v 100 分塊的一道比較好的題目吶。首先,觀察題目,給定的是乙個明顯的稀疏圖。邊...
HDU 4858 專案管理(vector)
題目鏈結 我們建造了乙個大專案!這個專案有n個節點,用很多邊連線起來,並且這個專案是連通的!兩個節點間可能有多條邊,不過一條邊的兩端必然是不同的節點。每個節點都有乙個能量值。現在我們要編寫乙個專案管理軟體,這個軟體呢有兩個操作 1.給某個專案的能量值加上乙個特定值。2.詢問跟乙個專案相鄰的專案的能量...