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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

poj 1185 NYOJ 85 炮兵阵地(状态压缩dp)

發(fā)布時間:2025/3/16 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 poj 1185 NYOJ 85 炮兵阵地(状态压缩dp) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

炮兵陣地

時間限制:2000?ms ?|? 內(nèi)存限制:65535?KB 難度:6 描述
司令部的將軍們打算在N*M的網(wǎng)格地圖上部署他們的炮兵部隊。一個N*M的地圖由N行M列組成,地圖的每一格可能是山地(用"H" 表示),也可能是平原(用"P"表示),如下圖。在每一格平原地形上最多可以布置一支炮兵部隊(山地上不能夠部署炮兵部隊);一支炮兵部隊在地圖上的攻擊范圍如圖中黑色區(qū)域所示:?

如果在地圖中的灰色所標(biāo)識的平原上部署一支炮兵部隊,則圖中的黑色的網(wǎng)格表示它能夠攻擊到的區(qū)域:沿橫向左右各兩格,沿縱向上下各兩格。圖上其它白色網(wǎng)格均攻擊不到。從圖上可見炮兵的攻擊范圍不受地形的影響。
現(xiàn)在,將軍們規(guī)劃如何部署炮兵部隊,在防止誤傷的前提下(保證任何兩支炮兵部隊之間不能互相攻擊,即任何一支炮兵部隊都不在其他支炮兵部隊的攻擊范圍內(nèi)),在整個地圖區(qū)域內(nèi)最多能夠擺放多少我軍的炮兵部隊。 輸入
第一行輸出數(shù)據(jù)測試組數(shù)X(0<X<100)
接下來每組測試數(shù)據(jù)的第一行包含兩個由空格分割開的正整數(shù),分別表示N和M; 接下來的N行,每一行含有連續(xù)的M個字符('P'或者'H'),中間沒有空格。按順序表示地圖中每一行的數(shù)據(jù)。0<=N <= 100;0<=M <= 10。
輸出
每組測試數(shù)據(jù)輸出僅一行,包含一個整數(shù)K,表示最多能擺放的炮兵部隊的數(shù)量。
樣例輸入
1 5 4 PHPP PPHH PPPP PHPP PHHP
樣例輸出
6



分析:dp[i][j][k]表示排列到第i行,第i-1行的狀態(tài)為s[j],第i-2行的狀態(tài)為s[k]時,最多可以放置多少個炮兵。

則dp[i][j][k] = max(dp[i][j][k], dp[i-1][j][k] +num[i])。第一行和第二行特殊處理。

#include <cstdio> #include <iostream> #include <cstring> #include <algorithm> using namespace std; const int N = 105; int Map[N]; int dp[N][65][65]; //dp[i][j][k]表示放第i行時,第i-1行為第j個狀態(tài),第i-2行為第k個狀態(tài)最多可以放多少個炮兵int s[N], num[N]; int n, m, p;bool check(int x) { //判斷本行的炮兵是否互相攻擊if(x & (x >> 1)) return false;if(x & (x >> 2)) return false;return true; }int Count(int x) { //計算狀態(tài)為x時可以放多少個炮兵int i = 1, ans = 0;while(i <= x) {if(x & i) ans++;i <<= 1;}return ans; }void Init() {p = 0;memset(s, 0, sizeof(s));memset(num, 0, sizeof(num));for(int i = 0; i < (1 << m); i++) { //預(yù)處理出合法狀態(tài)if(check(i)) {s[p] = i;num[p++] = Count(i);}} }int main() {char ch;int T;scanf("%d", &T);while(T--) {scanf("%d%d", &n, &m);if(!n && !m) {printf("0\n");continue;}memset(dp, 0, sizeof(dp));memset(Map, 0, sizeof(Map));for(int i = 0; i < n; i++) {for(int j = 0; j < m; j++) {cin >> ch;if(ch == 'H')Map[i] = Map[i] | (1 << (m - 1 - j)); //P為0,H為1}}Init(); // printf("p = %d\n", p); // for(int i = 0; i < p; i++) { // printf("s[%d] = %d, num[%d] = %d\n", i, s[i], i, num[i]); // }for(int i = 0; i < p; i++) { //求第一行最多放多少if(!(Map[0] & s[i]))dp[0][i][0] = num[i];}for(int i = 0; i < p; i++) { //前兩行最多放多少if(!(Map[1] & s[i])) {for(int j = 0; j < p; j++) {if((!(s[i] & s[j]))) {dp[1][i][j] = max(dp[1][i][j], dp[0][j][0] + num[i]);}}}}for(int r = 2; r < n; r++) { //枚舉行數(shù)for(int i = 0; i < p; i++) { //當(dāng)前行的狀態(tài)if(!(s[i] & Map[r])) {for(int j = 0; j < p; j++) { //上一行的狀態(tài)if(!(s[j] & Map[r-1])) {if(!(s[i] & s[j])) {for(int k = 0; k < p; k++) { //上上一行的狀態(tài)if(!(s[k] & Map[r-2])) {if(!(s[j] & s[k])) {if(!(s[i] & s[k])) {dp[r][i][j] = max(dp[r][i][j], dp[r-1][j][k] + num[i]);}}}}}}}}}}int ans = 0;for(int i = 0; i < p; i++) {for(int j = 0; j < p; j++) {if(ans < dp[n-1][i][j])ans = dp[n-1][i][j];}}printf("%d\n", ans);}return 0; }

總結(jié)

以上是生活随笔為你收集整理的poj 1185 NYOJ 85 炮兵阵地(状态压缩dp)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 拍摄av现场失控高潮数次 | aa一级视频 | av在线不卡免费观看 | 激情伊人网 | 精品欧美国产 | 欧美成人久久 | 中文字幕一区二区三三 | wwwxxx日本人 | 狼人av在线| 国产乱淫精品一区二区三区毛片 | 国产无遮挡又黄又爽又色 | 亚洲另类图区 | 男人的天堂网在线 | 午夜视频精品 | 国产精品免 | 99免费在线观看 | 国产成人精品无码免费看夜聊软件 | 五月婷网 | 毛片最新网址 | 国产一级片免费在线观看 | aaa大片十八岁禁止 中文字幕亚洲在线观看 | 亚洲视频在线观看免费 | 日韩簧片在线观看 | 亚洲一区二区在线看 | 国产乱码精品一区二区三区精东 | 午夜免费一级片 | 爱情岛论坛亚洲品质自拍 | 亚洲区小说区图片区qvod | 亚洲精品一二三 | 国产黑丝在线播放 | 日韩激情成人 | 欧美区二区三区 | 国产成人啪免费观看软件 | 成人性视频免费网站 | 日韩一区二区三区免费视频 | 在线你懂 | 手机免费在线观看av | 久久尹人 | 国产麻豆一区二区三区 | 欧美裸体视频 | 男人日女人在线观看 | www日本色 | 日本japanese丰满白浆 | 91看片淫黄大片91桃色 | 欧美日韩一级片在线观看 | 视频1区2区 | 成人a视频在线观看 | 国产成人麻豆免费观看 | 免费看黄色片网站 | 色综合视频在线 | 国产一区91 | av永久在线 | 一极黄色大片 | 成人国产视频在线观看 | 日本手机看片 | 啪啪小视频 | 很黄很污的视频网站 | 综合性色| 国产一区二区视频免费观看 | 日韩欧美亚洲天堂 | 亚洲v天堂 | 男男做爰猛烈啪啪高 | 亚洲精品国产精品乱码视色 | 高潮疯狂过瘾粗话对白 | 国产传媒一区二区三区 | 天堂av网址 | 欧美裸体视频 | 久久五月综合 | a在线免费观看 | 我们的生活第五季在线观看免费 | 日韩一二三区 | www.色国产| 国产剧情一区在线 | 亚洲欧洲天堂 | 999zyz玖玖资源站永久 | 日本少妇xxxx | аⅴ资源中文在线天堂 | 一区二区三区视频在线免费观看 | 91射射| 日韩不卡在线播放 | 欧美另类一区二区 | 美女光屁股视频 | 日韩在线播放中文字幕 | 肉色欧美久久久久久久免费看 | 亚洲国产婷婷香蕉久久久久久99 | 欧美日韩高清一区二区 国产亚洲免费看 | 噼里啪啦免费高清看 | 99在线观看视频 | 免费在线看黄色 | 黄色av免费在线播放 | 97国产超碰| 91久久伊人| a级欧美 | 69日本xxxxxxxxx30 在线波多野结衣 | 欧美成人吸奶水做爰 | 国产一区二区视频播放 | 二区中文字幕 | 中国少妇av | 成人免费片 |