模擬測試20190815(已更新)

2022-02-03 13:43:23 字數 1178 閱讀 1336

%%%skyh

這次考得什麼玩意啊,三道題絲毫想不到正解,騙分又不會騙,只有打打暴力才能維持得了生活這樣子一道比一道神

上來對著t1的表看了2h,嘗試了矩陣,組合數均無果只得打了個樹狀陣列的暴力,2h20min,得分15pts

然後打t2暴力(沒錯我已經放棄正解了orz),爆搜+20pts特判,不知怎的掛了5pts,得分45pts

然後碼t3暴力,然而暴力並不會打導致遞迴爆棧,mle 0

總分15+45+0=60,rank......5?!?

真是神(du)奇(liu)的一場考試

t1:數論

(極不友善的題目)

根據觀察(打表+瞎猜)可知,資料範圍內的良好的整數很少

那麼如果我們可以較快地篩出所有優秀的數,就可以做到o(1)回答詢問

怎麼篩呢,我們最開始已知1是良好的數,考慮用其進行擴充套件

每次列舉乙個質數p,用已知可能是良好的數x進行擴充套件(x*p0,x*p1......),得到乙個候選集合s

從小到大掃s中每乙個元素,同時維護約數個數前k+1大值,若乙個元素約數個數小於第k+1大值就捨棄

那麼我們質因子應列舉至多少呢,我們發現乙個數包含盡量小的質因子時才更可能是良好的數,經實踐,p<=293足以通過本題

當然我們可以考慮迭代至穩定的思想,判斷是否好幾次篩完都沒有發生改變

複雜度o(max(p)*n*logk*log(m))

未完待續(咕了)

t2:位運算

考試時候以為是搜尋剪枝,然而只會搜尋不會剪枝,拿了暴力和兩個特判分就溜了

正解dp,我們發現我們不關心能得到的過程數是什麼,只關心數中1的個數

設f[i][j]表示第i位得到位數為j的方案數

對於&,|,^分類討論轉移則可,轉移過程順便記錄可行方案(任一)

若最終f[n][(c中1的個數)]不為0,則遞推回去尋找可行方案

每次相當於尋找(位數為s)opt(位數為a[i])==now的一組可行解

分類討論則可

t3:旅行

好神啊好神啊好神啊

直接統計方案不好統計,我們不妨按照數字dp中逐位確定的思想來解決本題

顯然我們應該從b[1]進行dfs,尋找脫離限制的方案數

先用換根dp得出從其他點出發的方案數

然後從b[1]進行dfs,只沿著b走,用乙個全域性變數維護現在脫離控制的方案數

用線段樹or樹狀陣列優化一下就好了

2016已讀書單 已更新

1.悟空傳 今何在 2.練習乙個人 3.胭脂扣 李碧華 4.失樂園 渡邊淳一 5.我不想改變世界,也不想被世界改變 金星 6.維羅妮卡決定去死 保羅 柯艾略 7.月亮和六便士 毛姆 8.我喜歡這功利的世界 咪蒙 9.白夜行 東野圭吾 10.從你的全世界路過 張嘉佳 11.布魯特斯的心臟 東野圭吾 1...

雙向鍊錶 已更新)

ifndef vlyflist h define vlyflist h namespace vlyflist t data node prev node next 迭代器 class iteretor 前置 iteretor operator 後置 iteretor operator int 前置 ...

分紅酒 藍橋杯 已更新

這是2013年藍橋杯全國軟體大賽模擬題的第4題,問題是分紅酒,方法是bfs。這是乙個關於廣度優先搜尋 bfs 的題目。每個杯中水的量只能為整數,所以狀態是有限的,遍歷這些狀態,並找出距離初始狀態最短的路徑,即為所求解。廣度優先搜尋 bfs 使用佇列實現,正如深度優先搜尋 dfs 使用堆疊實現。解題思...