摘要:
树形DP,f[j][i]表示有j个robot遍历i及其子树并且在此子树返回地球所需的最小值,但还有k个robot遍历子树i及其子树,再返回父亲节点m个机器人这种情况,但是可以证明这种情况一定不会是最优解,所以不予考虑。还有一个地方就是f[0][i]表示用0个robot遍历意思就是说用n个机器人遍历此子树,再返回,可知n=1,道理和前面那种情况的道理一样。在求f[i][j]是用的是分组背包的思想,刚开始多用了一个数组g[][],来实现这个过程,后来看了其他人的代码,想了一想,可以用滚动数组优化,用f[i][j]就可以实现这个过程了#include <iostream>
#includ 阅读全文
posted @ 2013-04-16 19:56
LJ_COME!!!!!
阅读(109)
评论(0)
推荐(0)
摘要:
状态压缩DP,f[j][i]表示前i行棋子放置状态状态为j的方法数就0<=j<=1<<n,比如j=01010000,表示前i行第5列和第7列放置了棋子的方法总数,具体的递推过程代码如下#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
int n,k;
int num[10],f[1<<8][10],vis[10][10],pa[1<<8];
int main()
{ while(~scanf("% 阅读全文
posted @ 2013-04-16 14:01
LJ_COME!!!!!
阅读(127)
评论(0)
推荐(0)

浙公网安备 33010602011771号