首页 > 其他分享 >P2238 题解

P2238 题解

时间:2023-08-28 21:58:56浏览次数:54  
标签:走时 题解 P2238 往右 左面 是否 右面

problem & blog

kkk 的题解有一些地方是错的 /cf,所以写篇题解造福后人。


一眼 DP,如果你平凡地设 \(dp_{i,j}\),会发现买过的是不能再买的,然后就转移不动了。所以要记录每个点附近的点是否被吃过。

于是状压,每个二进制位表示 \((i,j)\) 周围的一些点是否被吃过。不妨钦定 \(X\) 表示当前位置,\(Y\) 表示下一步的位置。

若往右走,\(Y\) 的左面必定吃过,下边必定没吃过。然而,\(Y\) 的右面与上面不知道是否吃过(即如果吃过的话,这一位状态就是固定的);往下走时,\(Y\) 的上面必定吃过,右面必定没吃过,\(Y\) 的左面不知道是否吃过。

所以枚举 \(X\) 时,我们还得提前知道 \(Y\) 的其中两面是否被吃过。于是状压需要记录:右上(即往右走时 \(Y\) 的上面),左下(即往下走时 \(Y\) 的左面)是否吃过。

考虑转移,以往右走为例,往下走是同理的。首先 \(Y\) 一定没有被吃过,其次 \(Y\) 的上、下、右至少要有 \(2\) 个位置没有被吃过。转移的话看右、下、右上三位,还有就吃掉,非常简单。

于是做完了,代码很好写。一些小细节:

  • 有些东西没有表示出来,如往右走时 \(Y\) 的上面,其实就是 \(X\) 的右上;往右走时 \(Y\) 自己的状态,就是 \(X\) 的右面。
  • 有一些东西必须相等,如往右走时 \(X\) 的下面和 \(Y\) 的左下是同一个东西。

code,时间复杂度 \(O(nmT^2)\),\(T=2^4\)。

标签:走时,题解,P2238,往右,左面,是否,右面
From: https://www.cnblogs.com/liangbowen/p/17663441.html

相关文章

  • VSCode下载慢问题解决
    1.打开vscode官网浏览器搜索:vscodedownload或打开该网站https://code.visualstudio.com/Download/2.选中系统对应的版本 3.复制下载链接地址 4.修改链接地址将复制后的链接地址的域名(上图https后面框起来的那块)修改为 vscode.cdn.azure.cn最后变成类似:https......
  • 【题解 P4180】严格次小生成树
    [BJWC2010]严格次小生成树题目描述小C最近学了很多最小生成树的算法,Prim算法、Kruskal算法、消圈算法等等。正当小C洋洋得意之时,小P又来泼小C冷水了。小P说,让小C求出一个无向图的次小生成树,而且这个次小生成树还得是严格次小的,也就是说:如果最小生成树选择的边集......
  • [struts2]配置dispatcher INCLUDE和Forward可能问题解决
    Struts2.1.6GA不支持<dispatcher>FORWARD</dispatcher>和<dispatcher>INCLUDE</dispatcher>你要是和URLRewrite过滤器一起工作会报错。目前最新版本GeneralAvailability(GA)Releases-ReadyforPrimeTime!Struts2.1.8("bestavailable")Struts2.0.14(&qu......
  • JDK1.5在WIN7中显示时间不正确的问题解决
    最近发现一些新的windows操作系统中,JDK显示的时区不是正确的GMT+08的,而是默认的格林威治时间原以为是系统时区设置不对,但发现系统时间正确,时区也正确,就是JDK的不正确网上很多方法都是手动改tomcat设置,或者在代码中写死时区,这种做法都是治标不治本的于是继续查找根本所在后来几经比......
  • 关于win7图片查看很慢的问题解决
     找了很久都没找到解决方案,奇怪为什么网上没有人跟我遇到同样的问题?我对win7自带的图片和传真查看器一直是相当的不满意了,原来xp自带的版本,什么图片格式都能看可是win7里面,gif看不了(静态的),emf和wmf这种矢量图文件更是干脆都不支持最郁闷的是查看普通的jpg都很慢很慢。。。已经到......
  • P5629 【AFOI-19】区间与除法 题解
    P5629【AFOI-19】区间与除法题解由于题目中的运算是除法,所以对于一个数字\(x\),最多运算次数不会超过\(\lceil\log_{d}x\rceil\)就会变成\(0\)。然后我们就可以在\(O(n\logC)\)的时间复杂度内算出来每一个数字能被哪些原数消灭。这样处理询问仍然棘手,接下来有一个性质:......
  • SpringMVC3的ResponseBody返回字符串乱码问题解决
    SpringMVC的@ResponseBody注解可以将请求方法返回的对象直接转换成JSON对象,但是当返回值是String的时候,中文会乱码 原因是因为其中字符串转换和对象转换用的是两个转换器,而String的转换器中固定了转换编码为"ISO-8859-1" 网上也很多种解决方法,有通过配置Bean编码的,也有自己重写转......
  • 数位dp部分题解
    前言最近学了一种新的数位dp的状态表示,打算应用到以前做过的数位dp的题目。如果我们对数$N$进行数位dp,以前的状态定义$f(i,j)$表示所有数位大小为$i$且最高位是数字$j$的数的个数,如果还有其他约束条件那么再补充相应的状态即可。而新的状态定义则是$f(i,1)$和$f(i,0)$,其中$f(......
  • 销售基因链 题解
    销售基因链题目大意给定\(n\)个字符串,长度总和为\(m\),进行\(q\)次询问,每次询问给定两个字符串\(p,s\),问所有的字符串中以\(p\)为前缀且以\(s\)为后缀的有多少个。思路分析分享一个船新的答辩做法。(目前是最劣解)考虑哈希,对每个给定的字符串前后各做一遍哈希,将所有的......
  • P2486 [SDOI2011] 染色 题解
    P2486[SDOI2011]染色神仙树剖题。题意给你一棵树,每个点都有颜色,支持下面两种操作:路径染色。路径颜色段数量查询。树剖部分我们看到树上问题,不好处理,所以想办法给他树剖搞一搞,给他转化成序列的操作。我们树剖就是正常的树剖,然后我们考虑如何维护这个颜色序列。我......