Likecloud-吃、吃、吃

来源:互联网 发布:网络销售平台有哪些 编辑:程序博客网 时间:2024/03/29 02:34

因为这道题食物带有权值,要求最优方案,那么DP无疑。先写一个60分的dfs

#include<bits/stdc++.h>using namespace std;int a[210][210];int n,m,sum,maxa;int niu(int b,int c){    if(b<0)return maxa;    if(b==0){        if(sum>maxa)maxa=sum;    }    else for(int i=0;i<=2;i++){        if(b<=m&&b>0&&c+i>0&&c+i<=n){            sum+=a[b][c+i];            niu(b-1,c+i);            sum-=a[b][c+i];        }    }    return maxa;}int main(){    cin>>m>>n;    for(int i=1;i<=m;i++)        for(int j=1;j<=n;j++)cin>>a[i][j];    cout<<niu(m,n/2);    return 0;}

DP

#include<bits/stdc++.h>using namespace std;int n,m,a[210][210];int main(){    cin>>m>>n;    for (int i=1;i<=m;i++)        for (int j=1;j<=n;j++) cin>>a[i][j];    for (int i=2;i<=m+1;i++)        for (int j=1;j<=n;j++)            a[i][j]+=max(max(a[i-1][j-1],a[i-1][j]),a[i-1][j+1]);    cout<<a[m+1][n/2+1];    return 0;}
原创粉丝点击