zoukankan      html  css  js  c++  java
  • Codeforces Round #642 (Div. 3) F —Decreasing Heights dp

    #include <bits/stdc++.h>
    using namespace std;
    const int N=110;
    typedef long long ll;
    typedef pair<int,int> pii;
    #define int ll
    int T,n,m;
    int in[N][N],dp[N][N];
    set<int> st;
    signed main()
    {
    	cin>>T;
    	while(T--)
    	{
    		cin>>n>>m;
    		st.clear();
    		for(int i=0; i<n; i++)
    			for(int j=0; j<m; j++)
    				//因为只能往高度+1的,减去之后,也就变成只能往高度相同的走了
    				cin>>in[i][j],in[i][j]-=i+j,st.insert(in[i][j]);
    		ll ans=1e18;
    		//以这个点为起始高度,默认为0 
    		for(auto k:st)
    		{
    			for(int i=0; i<n; i++)
    				for(int j=0; j<m; j++)
    				{
    					//变成0需要的操作次数
    					int a=in[i][j]-k;
    					dp[i][j]=1e18;
    					//如果小于0,那么就说明高度是小于k的,那么这个点就不可能走到 
    					if(a<0)
    						continue;
    					//如果大于等于0,那么就是需要的次数 
    					if(i==0 && j==0)
    						dp[i][j]=a;
    					//状态转移 
    					if(i!=0)
    						dp[i][j]=min(dp[i][j],dp[i-1][j]+a);
    					if(j!=0)
    						dp[i][j]=min(dp[i][j],dp[i][j-1]+a);
    				}
    			ans=min(ans,dp[n-1][m-1]);
    		}
    		cout<<ans<<endl;
    	}
    	return 0;
    }
    
  • 相关阅读:
    nginx开启ssl模式
    安装nginx
    node的express框架
    使用Thumbnails工具对图片进行缩放,压缩
    正则
    VUE设置全局方法和属性
    js——XHR知识归纳
    页面资源加载过程
    Mongodb的增删改查
    Mongodb基本概念
  • 原文地址:https://www.cnblogs.com/QingyuYYYYY/p/12902332.html
Copyright © 2011-2022 走看看