这周末就要选拔考试了,紧张不安~
为了不在考试中挂掉,决定把之前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,维护下凸包,也是第一次学~
还需要多练习来加强。
-----------------------------------------------------------------------------------------------------------------------------
不知不觉已经把六周的都写的差不多了(还有一些题没补,等有时间再补)。。。
希望选拔赛中能有个好成绩吧