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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

HDU 5617 Jam's maze dp+滚动数组

發(fā)布時(shí)間:2023/12/10 编程问答 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 HDU 5617 Jam's maze dp+滚动数组 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

題目鏈接:

hdu:?http://acm.hdu.edu.cn/showproblem.php?pid=5617

bc(中文):?http://bestcoder.hdu.edu.cn/contests/contest_chineseproblem.php?cid=666&pid=1003

題解:

設(shè)dp[x1][x2][i]表示第i步時(shí),從(1,1)點(diǎn)走到了(x1,y1),(n,n)點(diǎn)走到了(x2,y2)點(diǎn)的合法的總數(shù)。

1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 using namespace std; 5 6 const int maxn = 505; 7 const int mod = 5201314; 8 9 int dp[maxn][maxn][2]; 10 char str[maxn][maxn]; 11 12 int n; 13 14 void init() { 15 memset(dp, 0, sizeof(dp)); 16 } 17 18 inline int add(int x, int y) { 19 x += y; 20 if (x > mod) x -= mod; 21 return x; 22 } 23 24 int main() { 25 int tc; 26 scanf("%d", &tc); 27 while (tc--) { 28 init(); 29 scanf("%d", &n); 30 for (int i = 1; i <= n; i++) scanf("%s", str[i] + 1); 31 if (str[1][1] == str[n][n]) dp[1][n][0] = 1; 32 //printf("dp[1][n][0]:%d\n", dp[1][n][0]); 33 int u = 1; 34 for (int i = 2; i <= n; i++) { 35 for (int j = 1; j <= i; j++) { 36 for (int k = 1; k <= i; k++) { 37 int x1, y1, x2, y2; 38 x1 = j; y1 = i + 1 - x1; 39 x2 = n + 1 - k; y2 = 2 * n - i + 1 - x2; 40 41 //滾動(dòng)數(shù)組非常需要注意的地方就是!!!每次都要初始化!!!初始化!!!初始化!!! 42 dp[x1][x2][u] = 0; 43 44 //if (i == n&&x1 != x2) continue; 45 46 if (str[x1][y1] == str[x2][y2]) { 47 //printf("fuck!"); 48 int &cur = dp[x1][x2][u]; 49 cur = add(cur, dp[x1][x2][!u]); 50 cur = add(cur, dp[x1][x2 + 1][!u]); 51 cur = add(cur, dp[x1 - 1][x2][!u]); 52 cur = add(cur, dp[x1- 1][x2 + 1][!u]); 53 } 54 } 55 } 56 u = !u; 57 } 58 int ans = 0; 59 for (int i = 1; i <= n; i++) ans = add(ans, dp[i][i][!u]); 60 printf("%d\n", ans); 61 } 62 return 0; 63 }

?

轉(zhuǎn)載于:https://www.cnblogs.com/fenice/p/5444943.html

總結(jié)

以上是生活随笔為你收集整理的HDU 5617 Jam's maze dp+滚动数组的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。