一名苦逼的OIer,想成为ACMer

Iowa_Battleship

随笔分类 -  记忆化搜索

洛谷1514 引水入城
摘要:"原题链接" 对于第一个问题,显然$DFS$或$BFS$一遍看看最后一排是不是全部被搜到即可。 对于第二个问题,考虑贪心,求出第一排每个格子最大能够覆盖多少最后一排的格子,即求左端右端(显然覆盖的格子都是连续的,若不为连续,则那个断开的格子定无法到达)。 可以使用$DP$来求出,设$L[x][y], 阅读全文

posted @ 2018-10-18 19:50 Iowa_Battleship 阅读(114) 评论(0) 推荐(0) 编辑

洛谷3953 逛公园
摘要:"原题链接" 记忆化搜索。 先在反图上跑一边最短路,求出$dis[x]$,表示点$x$到点$n$的最短距离,当然也同时也排除了不能到达$n$的点。 设$f[x][k]$表示从$x$点走到$n$点允许比$dis[x]$多走$k$距离的方案数,$a_i$表示$x$能到达的点,且边权为$v_i$,共$s_ 阅读全文

posted @ 2018-10-18 11:20 Iowa_Battleship 阅读(79) 评论(0) 推荐(0) 编辑

洛谷3959 宝藏
摘要:"原题链接" 这题我是用了个玄学的$dfs$剪枝跑过,如果要看正解状压$DP$,可以移步机房大佬的博客( "传送门" ) 关于剪枝,具体的直接在代码里说吧。 cpp include include include using namespace std; const int N = 20; int 阅读全文

posted @ 2018-09-29 13:27 Iowa_Battleship 阅读(177) 评论(0) 推荐(0) 编辑

hihoCoder1159 扑克牌
摘要:一道记忆化搜索 "原题链接" 和着色方案很像,这里就不详细阐述,可以去我博客里的 "着色方案" 里看。 但要注意本题不一样的是同种面值的牌花色不同,所以在转移时还需要乘上同种面值的牌的个数。 cpp include include using namespace std; typedef unsig 阅读全文

posted @ 2018-08-23 21:19 Iowa_Battleship 阅读(220) 评论(0) 推荐(0) 编辑

BZOJ1079或洛谷2476 [SCOI2008]着色方案
摘要:一道记忆化搜索 "BZOJ原题链接" "洛谷原题链接" 发现对于能涂木块数量一样的颜色在本质上是一样的,所以可以直接压在一个状态,而这题的数据很小,直接暴力开$6$维。 定义$f[a][b][c][d][e][la]$,$a$表示能涂$1$个木块的颜色总数,$b$表示能涂$2$个木块的颜色总数,$c 阅读全文

posted @ 2018-08-23 20:53 Iowa_Battleship 阅读(181) 评论(0) 推荐(0) 编辑

导航