P1508-Likecloud-吃吃吃

Posted asurudo

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了P1508-Likecloud-吃吃吃相关的知识,希望对你有一定的参考价值。

 1 #include <bits/stdc++.h>
 2 #define maxn 13003
 3 #define _for(i,a,b) for(int i = (a);i < b;i ++)
 4 typedef long long ll;
 5 using namespace std;
 6 inline ll read()
 7 
 8     ll ans = 0;
 9     char ch = getchar(), last =  ;
10     while(!isdigit(ch)) last = ch, ch = getchar();
11     while(isdigit(ch)) ans = (ans << 1) + (ans << 3) + ch - 0, ch = getchar();
12     if(last == -) ans = -ans;
13     return ans;
14 
15 inline void write(ll x)
16 
17     if(x < 0) x = -x, putchar(-);
18     if(x >= 10) write(x / 10);
19     putchar(x % 10 + 0);
20 
21 int n,m; 
22 int ap[203][203];
23 int dp[203][203];
24 
25 int main()
26 
27     n = read(), m = read();
28     memset(dp,0,sizeof(dp));
29     _for(i,0,n)
30         _for(j,0,m)
31             ap[i][j] = read();
32     
33     _for(i,0,m)
34     
35         if(i>=m/2-1 && i<=m/2+1)
36             dp[n-1][i] = ap[n-1][i];
37         else
38             dp[n-1][i] = -1000000;
39     
40     
41     for(int i = n-2;i >= 0;i --)
42     
43         for(int j = 0;j < m;j ++)
44         
45             if(j>=1)
46                 dp[i][j] = dp[i+1][j-1]+ap[i][j];
47             dp[i][j] = max(dp[i][j],dp[i+1][j]+ap[i][j]);
48             if(j<=m-2)
49                 dp[i][j] = max(dp[i][j],dp[i+1][j+1]+ap[i][j]);
50         
51     
52     
53     int rnt = 0;
54     _for(i,0,m)
55         rnt = max(rnt,dp[0][i]);
56     write(rnt);
57     return 0;
58 

 

以上是关于P1508-Likecloud-吃吃吃的主要内容,如果未能解决你的问题,请参考以下文章

洛谷——P1508 Likecloud-吃吃吃

luogu1508 Likecloud-吃吃吃

洛谷——1508 Likecloud-吃吃吃

洛谷 P1508 Likecloud-吃吃吃 题解

P1508 Likecloud-吃吃吃

P1508 Likecloud-吃吃吃