也許是目錄:
模擬||trie
【題目及題號】檔案列表 superoj920
【第一次】ac
【題解】
第一種做法,建trie樹,然後跑一跑就好了。
第二種做法,強制排序判斷模擬搞一搞,輸出來就好了。資料範圍很小,不會出問題。
【考試ing】
看了一下,先用string排了個序,然後記錄了一下分段的長度和起點,然後和上一次輸出的字元判斷。
中間發現乙個問題,string的單字元輸出是沒有問題的,切出來再輸出是非常慢的,不過可以記一下string切字元的函式。
模擬||trie
dp || 堆
【題目及題號】 編譯優化 superoj921
【第一次】70%accept 30%wrong anwser
【題解】
自己的做法:
第一部分60% 寫了乙個o(nm)的dp,f[i][j]表示到第i個數已經選了j個數的最優解。
方程 f[i][j]=max(f[i-1][j],f[i-2][j-1]+a[i]);
然後分別從[1,n)和(1,n]跑兩次,記得賦初值為-inf。
第二部分寫了個貪心騙了十分。
貪心是這樣的,建立大根堆,彈m個合法的點出來加起來輸出。
標算:用到了網路流中殘餘網路的思想。
對於每個節點記錄l[k],r[k],並且根據節點的值建立大根堆;
每次取出堆頂元素k,ans+=a[k];
然後更新a[k]=a[l[k]]+a[r[k]]-a[k],調整堆,還要更新l[r[k]]=k,r[l[k]]=k;l[k]=l[l[k]],r[k]=r[r[k]];
然後刪除堆中原本的l[k],r[k];
我的做法是將其num賦成最大值到堆頂後刪除【將堆最後的元素放到頂,並n–】;**見下現在發現上面那個做法非常蠢,其實可以將其賦成-inf下調就可以了。
兩種方法對比一下區別不大,下面的可以少寫乙個函式(up函式),而上面的堆在不斷地減小,會快一些【實測】。
void up(int x)
heap[v]=tmp;
inheap[heap[v].pos]=v;
}void delet(int x)
【考試ing】
考試的時候還寫了乙個非常非常裸的dp是o((n^2)*m)的;
然後拿來和上面那個dp對拍,拍了三千組小資料沒有錯,拍了一千組大資料到最後錯掉了。╮(╯▽╰)╭
最後拍小資料終於拍出了錯,我隨便改了乙個地方【不知道改的**】,然後就對了。
到現在都不知道是什麼導致的,心塞。orz!
比較重要的乙個收穫:發現dp的轉移方式和維數無法再降複雜度的時候,可以大膽猜結論標算不是dp喲~【遇到兩次這種情況了。
搜尋 && 並查集
【題目及題號】 樹形圖計數 superoj922
【第一次】90%accept 10%tle
【題解】
最壞情況8^8先列舉根節點再列舉每個點的父親,i可以作為j父親的條件是j不是i的祖先,可以維護並查集來判斷。
我的做法(2^e)*n e是邊的數量,剪了一些枝,7*7的完全圖可以一秒出解。
【考試ing】
最後一題看上去就像個搜尋題,秉著寫暴力的良知,搞了個最暴力的出來,其實我應該再思考一下的。
這個故事告訴我們
要把暴力當標算寫,能盡量快就讓它飛起來。orz!另外據說gjy和我寫的是一樣的,然而他a掉了。
不愧是老司機orz!!!!
最後總分260,跪琦爺。
前端基礎學習總結151012
faststone 螢幕截圖軟體,本次使用了它的抓取滾動區域 當有物件浮動時,在各個瀏覽器,可能會不相容。解決方法 1.同一行的盒子,將浮動方向設定為相同。2.clear 拒絕浮動物件對後面物件的影響。技巧 當浮動了許多元素之後,突然需要另起一行時,可以製作乙個空白的div標籤,為其設定clear ...
測試的測試點總結
1.驗證系統是否在輸入型別出錯時,還能進行其他資料的操作。2.驗證系統是否在輸入長度出錯時,還能進行其他資料的操作。3.驗證系統是否在輸入格式出錯時,還能進行其他資料的操作。4.驗證系統是否在輸入範圍出錯時,還能進行其他資料的操作。5.驗證系統是否在輸入了重複值 前提不允許重複,注意大小寫敏感和前後...
測試 20201028測試總結
教練終於考noip模擬題了。真 簽到題,直接使用math庫函式即可。text include include include include include using namespace std typedef long long lxl define getchar p1 p2 p2 p1 bu...