摘要: bfs的难点在于怎么去表示一个问题的状态【也就是如何去判重】 对于这种情况,每个状态有【守卫当前状态】、【已有钥匙】、【位置r和c】和【已花时间】。那么对于判重来说,我们记录守卫、钥匙、位置这三个状态就行了。(比如说一个位置可以重复走,因为可能拿了钥匙后再走回来;一个位置可以重复走,因为可能在这个点 阅读全文
posted @ 2018-07-26 22:56 4397 阅读(174) 评论(0) 推荐(0) 编辑
摘要: 反正想清楚了就开始枚举吧,需要拿纸和笔推一些公式。 我们想要m层的蛋糕有体积为N,那就枚举每一层蛋糕的半径和高度。其中第i层的蛋糕要比第i-1层的蛋糕半径和高度都大,第一层的蛋糕最小。 发现dfs中要带四个参数,dfs(level,remainVolumn,maxRadius,maxHeight)代 阅读全文
posted @ 2018-07-26 12:24 4397 阅读(280) 评论(0) 推荐(0) 编辑
摘要: 其实这个转移方程比较简单,每次枚举最后一个完成的作业就行了。 转移方程是 dp[i] = min{ dp[ i - (1<<(k-1)) ] + score(i,k) } score(i,k)是完成i这么多作业中最后一个完成的作业是k时,k带来的最小扣分值。 难点在于字典序输出方案,我建了个ans数 阅读全文
posted @ 2018-07-26 10:04 4397 阅读(1090) 评论(0) 推荐(0) 编辑