摘要: DP大水题。。关键是路径记录#include #include #include using namespace std; const int INF=11) puts(""); memset(vis,0,sizeof(vis)); memset(can,0,sizeof(can)); memset(path,-1,sizeof(path)); scanf("%d",&n); for(i=1;i=0) dp[i]=maxv+in[i]; } ans=-... 阅读全文
posted @ 2013-08-27 15:33 Ink_syk 阅读(131) 评论(0) 推荐(0) 编辑
摘要: 第二道状态压缩。。。 自己做出来还是很爽的二维, 第一维表示当前状态, 第二维表示当前地点。先从未达到tt这个点的状态推出当前有tt状态的点,然后再根据同状态其他已到达点 试着从其他点更新到该点,使得时间更小。#include #include #include using namespace std; int map[12][12], dp[1333][11], p[12]; const int INF=10; j-=j&(-j)) { tt=j&(-j); for(r=0; r<=n; r++) ... 阅读全文
posted @ 2013-08-27 13:40 Ink_syk 阅读(110) 评论(0) 推荐(0) 编辑
摘要: 第一道状态压缩DP。。。。入门题 按照自己的思路来 AC了先把每行可行的状态求出来 再进行DP#include #include #include using namespace std; const int mod=100000000; int dp[13][5000], map[13][13], state[13][1005], len[13]; int main() { int n, m, i, j, k; while(scanf("%d%d",&n,&m)!=EOF) { for(i=0;i<n;i++) for(j=0;... 阅读全文
posted @ 2013-08-27 11:56 Ink_syk 阅读(110) 评论(0) 推荐(0) 编辑