06 2012 档案

摘要:简单树形DP,父节点要么去要么不去;res[i]=max(∑res[child[i]],∑res[child(child[i])]);#include<iostream>#include<cstdio>#include<cstring>using namespace std;struct node{ int i,next;}vert[201];char name[201][20];int head[201],res[201],go[201],nogo[201],N,count;int find(char * str){ int i; for(i=1;i< 阅读全文
posted @ 2012-06-09 10:32 书山有路,学海无涯 阅读(320) 评论(0) 推荐(0) 编辑
摘要:真是一个好题啊,还是想了好几天而且还WA了两次…….令res[i][j]表示前i个COW,Si为j时Fi的最大值。res[i][j]=max(res[i-1][j-Fi[i]],res[i][j]); 因为res[i][]只与res[i-1][]有关空间复杂度省去一维,就像01背包那样。因为j可能为负值,因此我们可以将j设置一个偏移量MOVE。#include<iostream>#include<cstdio>#include<cstring>using namespace std;#define MAX 1234567890#define MOVE 100 阅读全文
posted @ 2012-06-08 09:55 书山有路,学海无涯 阅读(255) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示