吉比特第二题AC代码

#include <iostream>
#include <vector>
using namespace std ;
int Min(int a , int b){
    return a > b ? b : a ;
}
int main(){
    int n , m ;
    while(cin >> n >> m){
        vector<vector<int> > map(n , vector<int>(m , 0)) ;
        for(int i = 0 ; i < n ; i++){
            for(int j = 0 ; j < m ; j++){
                cin >> map[i][j] ;
            }
        }   
        vector<vector<int> > dp(n , vector<int>(m , 0)) ;
        dp[n - 1][m - 1] = map[n - 1][m - 1] > 0 ? 0 : - map[n - 1][m - 1];  
        for(int i = m - 2 ; i >= 0 ; i--){                   //初始化
            if(map[n - 1][i] > 0){
                if(map[n - 1][i] - dp[n - 1][i + 1] > 0){
                    dp[n - 1][i] = 0 ;
                }
                else{
                    dp[n - 1][i] = dp[n - 1][i + 1] - map[n - 1][i] ;
                }
            }
            else if(map[n - 1][i] < 0){
                dp[n - 1][i] = dp[n - 1][i + 1] + (-map[n - 1][i]) ;
            }
        }    
        for(int i = n - 2 ; i >= 0 ; i--){                      //初始化
            if(map[i][m - 1] > 0){     
                if(map[i][m - 1] - dp[i + 1][m - 1] > 0){
                    dp[i][m - 1] = 0 ;
                }
                else{
                    dp[i][m - 1] = dp[i + 1][m - 1] - map[i][m - 1] ;
                }
            }
            else{
                dp[i][m - 1] = dp[i + 1][m - 1] + (-map[i][m - 1]) ;
            }
        } 

        for(int i = n - 2 ; i >= 0 ; i--){                      //DP
            for(int j = m - 2 ; j >= 0 ; j--){
                dp[i][j] = Min(dp[i + 1][j] , dp[i][j + 1]) ;
                dp[i][j] = (map[i][j] - dp[i][j]) > 0 ? 0 : -(map[i][j] - dp[i][j]) ;
            }
        }  
        cout << dp[0][0] + 1 << endl ;
    }
    return 0;
}
#吉比特##C++工程师#
全部评论
楼主可以讲一下大概思路吗
点赞 回复 分享
发布于 2017-08-28 08:49

相关推荐

不愿透露姓名的神秘牛友
昨天 11:35
程序员小白条:话太多,没实力和学历,差不多回答回答就行了,身份地位不一样
点赞 评论 收藏
分享
06-23 11:28
门头沟学院 Java
牛客91966197...:也有可能是点拒绝的时候自动弹的话术
点赞 评论 收藏
分享
06-05 19:46
已编辑
武汉大学 后端
点赞 评论 收藏
分享
我是没经验的毕业生,这啥情况啊会不会是hr在刷kpi
JamesGosli...:字节boss属于是群发了,我都快入职字节了,其他部门还在和我boss打招呼
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务