這週末就要選拔考試了,緊張不安~
爲了不在考試中掛掉,決定把之前week mission裏做過的題再複習一遍,事實證明做完題長時間不看是會忘掉的!
ps : 截至目前,還有一些題沒做完,遲早還是要補上的,畢竟裏面的題有很多都不錯的~
(持續更新)
2018年6月24日補:
嚶嚶嚶~~~考了一道原題,由於我的懶惰卻沒做。菜哭 o(╥﹏╥)o
--------------------------------------------------------------------------------------------------------------------
week mission1
題目鏈接:http://acm.xidian.edu.cn/contest.php?cid=1040
A題
小模擬
B題
思維題(排序)
C題
注意數據範圍,建一個桶即可。
D題
水題
E題
乍看一眼是揹包,然而題目說的是金粉(我也被坑了),貪心。
F題&&G題
思維題,維護每個元素前面的最大值即可。
H題&&I題
找到比這個數小的最大的二進制數
J題
二分,nlogn複雜度
K題&&L題
L題有誤,其實兩道是一道。
注意y對總價格沒影響。
所以按x排序,對y建桶即可~
M題
尺取法裸題
N題
折半搜索裸題
O題
思維題(胡搞啦~)
-------------------------------------------------------------------------------------------------------------------
week mission2
題目鏈接 : https://cn.vjudge.net/contest/229047#overview
A題(HDU4500)
水題,模擬
B題(Uva11572)
用set維護
C題(POJ2002)
暴搜+二分,O(n2*logn)
D題(HDU5821)
貪心+排序
E題(HDU6124)
數學/打表找規律
F題(HDU5037)
貪心(難!)
G題(HDU3787)
字符串處理,水題
H題(HDU5778)
向x的兩邊暴力搜素,搜索時最好將x開根號,更快一些。
I題(Lightoj1088)
二分
J題(HDU2037)
貪心,結束時間早的排在前面
K題(HDU5374)
大模擬,較爲繁瑣
L題(POJ3273)
二分
M題(HDU5512)
規律題。
其實能選的點只有n/gcd(a,b) 之後判斷奇偶就好了。
---------------------------------------------------------------------------------------------------------------------
week mission3
題目鏈接:http://acm.xidian.edu.cn/contest.php?cid=1041
A題
標程給的是用stack模擬,而我寫成了vector。似乎比標程慢一些~
B題
標程給的是隊列模擬,我還是用的vector。今天寫了一遍隊列的,快了很多~
C題
我用的暴力bfs,巨慢。
標程給的是 :當m>n時能整除2就除2,不能時加1,用一個變量cnt計數,重複…
當某次除2使得m<=n時,就不用繼續計算下去了,直接輸出cnt+n-m。
D題
暴力bfs,不過數據範圍小了,不剪枝似乎也能過~
E題
紫書上的題,回溯法,不過我的程序跑了300多ms。如果不是特判奇數的話就T掉了。
F題
前綴和+map,並需要特殊處理k爲1或-1的情況,較難。。。
G題
記憶化搜索,挺經典
H題
染色dfs
I題
今天再看這道題的時候發現原來的超時了。。。
加了一個剪枝後穩過
思路是找到起點,搜四個方向,看到終點的時候轉彎次數是否超過2。
J題
標程給的是樹的直徑,我倒做成了一道求樹的高度的題。。。
不過後來一看,也差不太多。..
K題
直接暴力bfs搜兩遍(兩個人)就好了啊
L題
較難的bfs題
-------------------------------------------------------------------------------------------------------------------------
week mission4
題目鏈接 : https://cn.vjudge.net/contest/232002#overview
A題
dfs水題,暴搜可以過,不過要注意按字典序輸出。
B~E題
(因爲個人的懶惰,沒寫...)
待寫
F題
這道題比較坑的在於100位是忽悠你的,開個long long進行bfs就A了。
不過很玄學,C++TLE,G++438ms,。。。
G題
簡單bfs,一次從千百十個枚舉與這個數相鄰的素數。
H題
這道題的bfs倒不難想,難點應該在存狀態吧~
個人用的字符串存的,沒看標程。
I題
算是裸的bfs吧,加了一維而已
K題
比較複雜的一道dfs,涉及到很多剪枝。
L題
和K題類似,做了K題後就覺得不是特別難了,不過剪枝可能要自己試試看。
M題
感覺和K和L還是比較像,但需要用字符串存狀態,有一些細節需要處理。
N題
算是這周的水題了,直接暴力dfs沒有填數的格子即可。
O題
這道題感覺不算dfs吧,就是染個色,最後看一下用了多少種顏色。
P題
這題不好想的地方在於路可以重複走,但不能走超過3次
可以參考:https://blog.csdn.net/lyy289065406/article/details/6689310
Q題
和上一道題寫法差不多,這道題關鍵在於一步剪枝。
就是走到當前點時如果之前在相同話費到達這點的路徑更短,則剪掉
(先寫到這吧)
--------------------------------------------------------------------------------------------------------------------------
題目鏈接:https://cn.vjudge.net/contest/233241#overview
A題
水題,最基礎的dp了
B題
01揹包裸題,甚至不用滾動數組
C題
dp過程不難想,難點在於保存數字了吧
D題
把位置和時間抽象成一個數塔,想到這個應該就不難了。。。
E題
LCS裸題
F題
可參考 https://www.cnblogs.com/MyNameIsPc/p/9048552.html
其實找到規律後遞推就不難了。
G題
關鍵點在於遞增的數必須是連續的
所以開一個數組,每讀入一個數,就記錄這個數前面有幾個數
H題
一道經典的NOIP題,也是一道不錯的dp題。
拿到這道題可能第一印象就是貪心+dp,但事實上不能用貪心。
後來看標程,1個4維dp。。。
I題
先拓撲排序判環,再遞推求解最大值即可。
J題
很經典的題了,dp或記憶化搜索都可以
K題
先排序,用一個dp表示在第i個時間段擠奶量的最大值,從i+1更新到m
L題
之前做過,可以看我之前寫的博客 https://blog.csdn.net/star_moon0309/article/details/80456155
-------------------------------------------------------------------------------------------------------------------------
week mission 6
題目鏈接:https://vjudge.net/contest/234301#overview
周訓題目難度越來越大了~ 很多都是看別人的題解後寫的(窩太弱了。。。)
B題
一道區間dp的好題,參考 https://blog.csdn.net/sdjzping/article/details/19160013
C題
01揹包+輸出路徑
D題
完全揹包裸題
E題
一道神仙題。。。
狀態轉移不太好想,老老實實看別人博客。。。
G題
dp+單調棧
可參考之前我的這篇文章
https://blog.csdn.net/star_moon0309/article/details/80665878
I題
記憶化搜索
J題
按位dp,之前沒有做過的類型,參考別人代碼
https://www.cnblogs.com/ljh2000-jump/p/5814135.html
M題
經典的數位dp,可參考我之前寫的博客
https://blog.csdn.net/star_moon0309/article/details/80385584
O題
斜率dp,維護下凸包,也是第一次學~
還需要多練習來加強。
-----------------------------------------------------------------------------------------------------------------------------
不知不覺已經把六週的都寫的差不多了(還有一些題沒補,等有時間再補)。。。
希望選拔賽中能有個好成績吧