151012測試的總結

2021-07-05 19:09:39 字數 2007 閱讀 9259

也許是目錄:

模擬||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...