日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

hdu 4568 bfs + 状压dp

發布時間:2025/7/14 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 hdu 4568 bfs + 状压dp 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

//這題的數據是不是有問題... 不考慮寶藏一個也拿不到也能AC...

1 #include "bits/stdc++.h" 2 using namespace std; 3 const int INF = 0x3f3f3f3f; 4 int T; 5 int N, M; 6 int mat[210][210]; 7 int K; 8 int tot_tra, tra[210][210]; 9 10 //dp parameters 11 int dis_tra_broder[20], dis_tra_tra[20][20]; 12 int dp[10000][20]; 13 14 //bfs parameters 15 struct Node 16 { 17 int row, col; 18 int cost; 19 bool operator< (const Node &tmp) const 20 { 21 return cost > tmp.cost; 22 } 23 }now, Next, begin_pos[20]; 24 25 int dis[210][210]; 26 bool vis[210][210]; 27 28 inline bool check_border(int row, int col) 29 { 30 if(row == 1 || row == N || col == 1 || col == M) { 31 return 1; 32 } 33 return 0; 34 } 35 36 inline bool check(int row, int col) 37 { 38 if(row < 1 || row > N || col < 1 || col > M) { 39 return 0; 40 } 41 return 1; 42 } 43 44 45 int dx[] = {0, 0, -1, 1}; 46 int dy[] = {-1, 1, 0, 0}; 47 48 void bfs(int index_tra) 49 { 50 priority_queue<Node> q; 51 q.push(begin_pos[index_tra]); 52 memset(vis, 0, sizeof(vis)); 53 memset(dis, INF, sizeof(dis)); 54 dis[ begin_pos[index_tra].row ][ begin_pos[index_tra].col ] = 0; 55 while(!q.empty()) { 56 now = q.top(); 57 q.pop(); 58 if(vis[now.row][now.col]) { 59 continue; 60 } 61 vis[now.row][now.col] = 1; 62 if(tra[now.row][now.col]) { 63 dis_tra_tra[index_tra][ tra[now.row][now.col] ] = now.cost; 64 } 65 if(check_border(now.row, now.col)) { 66 dis_tra_broder[index_tra] = min(dis_tra_broder[index_tra], now.cost); 67 } 68 int i; 69 for(i = 0; i < 4; ++i) { 70 Next.row = now.row + dx[i]; 71 Next.col = now.col + dy[i]; 72 if(check(Next.row, Next.col) && mat[Next.row][Next.col] != -1) { 73 Next.cost = now.cost + mat[Next.row][Next.col]; 74 if(Next.cost < dis[Next.row][Next.col]) { 75 dis[Next.row][Next.col] = Next.cost; 76 q.push(Next); 77 } 78 } 79 } 80 } 81 } 82 83 int main() 84 { 85 scanf("%d", &T); 86 while(T--) { 87 memset(tra, 0, sizeof(tra)); 88 memset(dis_tra_broder, INF, sizeof(dis_tra_broder)); 89 memset(dis_tra_tra, INF, sizeof(dis_tra_tra)); 90 memset(dp, INF, sizeof(dp)); 91 scanf("%d%d", &N, &M); 92 int i, j; 93 for(i = 1; i <= N; ++i) { 94 for(j = 1; j <= M; ++j) { 95 scanf("%d", &mat[i][j]); 96 } 97 } 98 scanf("%d", &K); 99 int row, col; 100 for(i = 1; i <= K; ++i) { 101 scanf("%d%d", &row, &col); 102 ++row; 103 ++col; 104 tra[row][col] = i; 105 begin_pos[i].row = row; 106 begin_pos[i].col = col; 107 // begin_pos[i].cost = 0; 108 } 109 for(i = 1; i <= K; ++i) { 110 bfs(i); 111 } 112 int tot_s = (1 << K) - 1; 113 int s, step_s, u, pre_s, pre_step_s, v; 114 for(u = 1; u <= K; ++u) { 115 dp[(1 << (u - 1))][u] = dis_tra_broder[u] + mat[begin_pos[u].row][begin_pos[u].col]; 116 } 117 for(s = 3; s <= tot_s; ++s) { 118 for(u = 1; u <= K; ++u) { 119 step_s = (1 << (u - 1)); 120 if((s & step_s) && (step_s != s)) { 121 pre_s = s ^ step_s; 122 for(v = 1; v <= K; ++v) { 123 pre_step_s = (1 << (v - 1)); 124 if(pre_s & pre_step_s) { 125 dp[s][u] = min(dp[s][u], dp[pre_s][v] + dis_tra_tra[v][u]); 126 } 127 } 128 } 129 } 130 } 131 int res = INF; 132 for(u = 1; u <= K; ++u) { 133 res = min(res, dp[tot_s][u] + dis_tra_broder[u]); 134 } 135 printf("%d\n", res); 136 } 137 }

?

轉載于:https://www.cnblogs.com/AC-Phoenix/p/4654467.html

總結

以上是生活随笔為你收集整理的hdu 4568 bfs + 状压dp的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 麻豆一区二区三区 | 噜噜av | 成人观看网站 | 精品久久久噜噜噜久久久 | 亚洲一区二区三区综合 | 西方av在线| 久久看av | 人妻无码久久精品人妻 | 国产高清免费av | 久久综合网址 | www.日本色 | 国产成人精品亚洲男人的天堂 | 最新激情网 | 国产成人三级在线观看视频 | www毛片com | 免费黄视频在线观看 | 亚洲精品伦理 | 免费中文视频 | 欧美日韩免费在线视频 | 91亚洲网 | 伦理片久久 | 日本一区二区三区免费视频 | 求毛片网站 | 欧美鲁| 国产精品一区二区三区免费视频 | 偷拍亚洲精品 | 一个人在线观看免费视频www | 成人精品一区二区三区四区 | 欧美少妇精品 | 欧美性猛交ⅹxxx乱大交3 | 国产免费av网址 | 天天天天干| 好吊日在线观看 | 国产一区二区精品丝袜 | 国产精品无码一区二区三区三 | 国产精品香蕉国产 | 婷婷久久网 | 欧美成人午夜剧场 | 亚洲乱码中文字幕 | 日韩视频在线免费观看 | 91精品国产乱码在线观看 | 午夜插插插 | 91岛国 | 亚洲精品鲁一鲁一区二区三区 | 一区二区三区视频网 | 日本在线免费观看视频 | 射精一区二区 | 日本啪啪片 | 国产二区免费 | 国产精品天美传媒沈樵 | 久久免费视频一区二区 | 91视频看| 色呦呦视频 | 色777| 国产精品免费一区二区三区 | 久操国产在线 | 91免费网址 | 日本一本在线视频 | 国产三级观看 | 给我看免费高清在线观看 | www.四虎在线 | 日韩一区二区三区在线观看视频 | 国产精品人人做人人爽人人添 | 亚洲h网站 | 插插操操 | 一级香蕉视频在线观看 | 天天操天天舔天天干 | 一区二区三区四区影院 | 91精品啪在线观看国产 | 中文av一区二区三区 | 免费在线观看a视频 | 国产一区二区三区乱码 | 中国一级大黄大黄大色毛片 | 成人在线观看免费网站 | 永久免费av在线 | 好大好爽好舒服 | 欧美成人综合色 | 91成人精品一区在线播放 | 秋霞福利网| 精产国品一二三产品蜜桃 | 国产色站 | 精品国产午夜福利在线观看 | av成人毛片 | 久久99精品国产麻豆婷婷 | 超级乱淫视频 | 欧美大喷水吹潮合集在线观看 | 日韩女女同性aa女同 | 婷婷激情丁香 | 深夜福利麻豆 | 欧美视频一区二区三区四区在线观看 | 成熟人妻av无码专区 | 欧美日韩有码 | 91麻豆产精品久久久久久夏晴子 | 无码一区二区三区在线观看 | 日韩免费高清视频 | 宅男视频污 | 久久久高清视频 | 秋霞视频一区二区 | 成人国产三级 |