国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

HDU - 2084 - 數塔

2019-11-08 03:07:55
字體:
來源:轉載
供稿:網友

HDU - 2084 - 數塔

應該是最簡單的DP了吧。

題目

omg

解題過程

正常DP

先把數據讀入;再從頂層到底層dp,分行首、行尾和行中三種情況;最后在最后一行總和中循環出最大的數,輸出即可。

跟上一個相對應的就應該是“不正常”的DP了吧

和第一個唯一的區別就是從底層到頂層進行dp 最后會直接得到最小值;比較機(zhi)智(zhang)吧,哈哈哈!

Ac代碼

正常DP

// 2084 - 數塔int main() { const int maxn = 1005; int C, N; int map[maxn][maxn]; int num; cin >> C; while (C--) { cin >> N; num = 0; for (int i = 1; i <= N; i++) { for (int j = 1; j <= i; j++) { cin >> map[i][j]; } } // 順序dp(需單獨考慮行首與行尾的情況) for (int i = 2; i <= N; i++) { for (int j = 1; j <= N; j++) { if (j == 1) { map[i][j] += map[i - 1][j]; } else if (j == i) { map[i][j] += map[i - 1][j - 1]; } else { map[i][j] += max(map[i - 1][j - 1], map[i - 1][j]); } } } for (int i = 1; i <= N; i++) { num = max(num, map[N][i]); } cout << num << endl; } return 0;}

“不正常”DP

// 2084 - 數塔int main() { const int maxn = 1005; int C, N; int map[maxn][maxn]; int num[maxn]; cin >> C; while (C--) { cin >> N; for (int i = 1; i <= N; i++) { for (int j = 1; j <= i; j++) { cin >> map[i][j]; } } memset(num, 0, sizeof(num)); // 從尾至頭dp for (int i = N; i > 0; i--) { for (int j = 1; j <= i; j++) { num[j] = max(num[j], num[j + 1]) + map[i][j]; } } cout << num[1] << endl; } return 0;}

小結

沒啥 嘗試新方法吧哈哈哈
上一篇:POJ2390 Bank Interest

下一篇:color

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 彰武县| 双城市| 桃江县| 苍南县| 宜黄县| 惠水县| 崇左市| 耒阳市| 绍兴市| 商水县| 石河子市| 鹿泉市| 邛崃市| 陕西省| 高州市| 苗栗县| 扶风县| 东丽区| 巴南区| 新余市| 吉林市| 慈溪市| 丰都县| 英超| 县级市| 镇赉县| 建始县| 钟祥市| 泰宁县| 特克斯县| 包头市| 万源市| 潮州市| 林甸县| 皋兰县| 吉木萨尔县| 新竹县| 治多县| 会宁县| 合阳县| 上虞市|