
穷竭搜索
z__001
ACMer.
展开
-
POJ - 1321
题意略题解1(状态压缩DP)分析之前所用的DP数组下标都是整数的形式, 为了用DP求解, 就需要将题目所给的棋盘抽象成整数. 注意到一行棋子的可能状态可以用1<代码#include<set>#include<map>#include<cmath>#include<queue>#include<cctype>#include<cstdio>#include<vector>#includ原创 2017-04-11 16:12:44 · 234 阅读 · 0 评论 -
C程序设计大赛B题
题意第一行输入T, 代表T组样例, 接下来输入T行, 每行给出n, k. (1<=T<=100, 1<=n<=1e6, 1<=k<=100).求解1-n这n个数中, 有多少个数的数位和是k的倍数.题解1(数位DP)分析状态定义 DP[i][j]: 代表从低位向高位数i位, 数位和%k等于j的满足题意的个数.数位DP多用记忆化搜索实现, 不用递推式的原因是转移方程难以写出.这道题的搜索方向是从高原创 2017-04-11 13:18:21 · 323 阅读 · 0 评论 -
POJ - 3254
题意农夫在一块M*N的农田上种庄稼,其中有些能种,有些不能种,且要求所种庄稼不能相邻,现求种田方案数. 1<=M,N<=12. input 2 3 1 1 1 0 1 0 output 9题解1(状压DP)分析每一行的状态都可以用一个整数来描述.所以有: dp[i][j]: 前面i+1行, 且第i行的状态为j 的方案数.首先初始化dp数组为全0, 然后先判断第0行的1<< n个状原创 2017-04-11 19:37:25 · 237 阅读 · 0 评论