AT360 雨上 動態規劃

2021-09-27 13:55:21 字數 1477 閱讀 2539

思路:我們用dp[i]來表示第i個元素存走到i時最少經過的水坑數。

dp[i]明顯可以從 i-1 i-2 i-3得來。那麼我們肯定要走跨過水坑數最小的那一條path,所以我們每次可以從這3條路徑中找出最小的一條路徑+判斷當前的目的地是否有水坑。

核心**

for

(int i =

4; i <= n; i++

) dp[i]

= dp[i]

+min

(min

(dp[i -3]

, dp[i -2]

), dp[i -1]

);

/**

* from:

* qingdao agricultural university

* created by xiangwangacmer

* date : 2019-10-03-18.21.09

* talk is cheap.show me your code.

*/#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#define ll long long

using

namespace std;

const ll maxn =

1e6+5;

const ll minn =

1e9+5;

const ll mod =

1000000007

;const

int inf =

0x3f3f3f3f

;const

long

long limit =

4294967295ll

;vector<

int>v[maxn]

;int dp[maxn]

;vector<

int>g[maxn]

;bool row[maxn]

, col[maxn]

;bool flag =0;

char a[maxn]

;queue<

int>q;

intmain()

for(

int i =

4; i <= n; i++

) dp[i]

= dp[i]

+min

(min

(dp[i -3]

, dp[i -2]

), dp[i -1]

);cout << dp[n]

<< endl;

return0;

}

洛谷AT360 雨上 dp

題目翻譯 給定一條長為n的路,每一單位的路段可能為 x 水坑 或 空地 要求經過最少的水坑到達n這裡,每一步可以走1 2 3單位長的距離。感謝 xusiyuan 提供的翻譯 題目描述 僕 家 大學 道路 結 道路 區間 分 道路 一行 文字列 表 各文字 1 區間 相當 1文字目 家 前 區間,最後...

ACM DAG上的動態規劃

有向無環圖dag 演算法中有時稱有向無環圖為dag directed acyclic graph 所謂有向無環圖是指 任意一條邊有方向,且不存在環路的圖。有n個矩形,每個矩形可以用a,b來描述,表示長和寬。矩形x a,b 可以巢狀在矩形y c,d 中當且僅當a 這個題目可以抽象為dag,即x有到y的...

DAG上的動態規劃

dag模型 有n個矩形,每個矩形用兩個整數a,b描述,表示長和寬,矩形 a,b 可以巢狀在矩形 c,d 中,當且僅當a小於c,b小於d或b小於c,a小於d。要解決的問題就是從眾多矩形中選出最多的矩形,使其可以按要求排成一列,若有多解,矩形編號的字典序要盡可能小。分析 按照書上的分析很簡單易懂,也容易...