题目链接:国家铁路 - 题目 - Daimayuan Online Judgehttp://oj.daimayuan.top/course/11/problem/849

有亿点点难

思路:直接枚举是on4,考虑枚举一个点,然后查找出另外一个点构成的最小值。                          namo,c*(|x1-x2|+|y1-y2|)这个式子在处理的时候就不能含有(x2,y2).我们考虑把绝对值拆开。

就会有两种情况: 一种是从左下到右上,一种是从左上到右下。                                                      用动态规划维护最小值即可

//#define pei_pei_//#include<bits/stdc++.h>
#include<iostream>
#include<cmath>
#include<queue>
#include<vector>
#include<string>
#include<cstring>
#include<functional>
#include<iomanip>
#include<map>
#include<unordered_map>
#include<algorithm>
#include<set>
#define IOS ios::sync_with_stdio(false),cin.tie(0),cout.tie(0)
#define FI first
#define SE second
#define _for(type,i,a,b) for(type i=(a);i<(b);++i)
#define _efor(type,i,a,b) for(type i=(a);i<=(b);++i)
#define _rfor(type,i,a,b) for(type i=(a);i>(b);--i)
#define _refor(type,i,a,b) for(type i=(a);i>=(b);--i)
#define _sfor(p,st) for(auto &p:st)
#define endl '\n'
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
typedef pair<int,int> pii;
typedef pair<double,int> pdi;
const double pi=acos(-1.0);
const double eps=1e-8;
const int mod=100003;
const int _mod=998244353;
const ll inf=0x3f3f3f3f3f3f3f3f;
const int maxn=200010;
ull base=1331;
//-------------------------------------------------------------------ll maps[1005][1005];ll dpl[1005][1005];ll dpr[1005][1005];
//-------------------------------------------------------------------
signed main(){//ifstream cin("D:\\in.txt");//ofstream cout("D:\\out.txt");IOS;#ifdef pei_pei_double be=clock();#endif // err//==================================================================ll h,w,c;cin>>h>>w>>c;_efor(ll,i,1,h)_efor(ll,j,1,w)cin>>maps[i][j];//第一_efor(ll,i,1,h)_efor(ll,j,1,w){dpl[i][j]=inf;}_refor(ll,i,h,1)_efor(ll,j,1,w){if(i+1<=h&&j-1>=1){dpl[i][j]=min(dpl[i+1][j],dpl[i][j-1]);dpl[i][j]=min(dpl[i][j],maps[i+1][j]+c*((i+1)-j));dpl[i][j]=min(dpl[i][j],maps[i][j-1]+c*(i-(j-1)));}else if(i+1<=h){dpl[i][j]=min(dpl[i+1][j],maps[i+1][j]+c*((i+1)-j));}else if(j-1>=1){dpl[i][j]=min(dpl[i][j-1],maps[i][j-1]+c*(i-(j-1)));}}//第二_efor(ll,i,1,h)_efor(ll,j,1,w){dpr[i][j]=inf;}_efor(ll,i,1,h)_efor(ll,j,1,w){if(i-1>=1&&j-1>=1){dpr[i][j]=min(dpr[i-1][j],dpr[i][j-1]);dpr[i][j]=min(dpr[i][j],maps[i-1][j]-c*((i-1)+j));dpr[i][j]=min(dpr[i][j],maps[i][j-1]-c*(i+(j-1)));}else if(i-1>=1){dpr[i][j]=min(dpr[i-1][j],maps[i-1][j]-c*((i-1)+j));}else if(j-1>=1){dpr[i][j]=min(dpr[i][j-1],maps[i][j-1]-c*(i+(j-1)));}}ll ans=inf;_efor(ll,i,1,h){_efor(ll,j,1,w){ans=min(ans,dpl[i][j]+maps[i][j]+c*(j-i));}}_efor(ll,i,1,h)_efor(ll,j,1,w){ans=min(ans,dpr[i][j]+maps[i][j]+c*(j+i));}cout<<ans<<'\n';
//==================================================================#ifdef pei_pei_double en=clock();cout<<endl<<"time: "<<fixed<<setprecision(8)<<en-be<<" ms";#endif // errreturn 0;
}

daimayuan每日一题#849 国家铁路相关推荐

  1. daimayuan每日一题#851 Good Permutations

    Good Permutations - 题目 - Daimayuan Online Judgehttp://oj.daimayuan.top/course/11/problem/851思路:纯纯推公式 ...

  2. daimayuan每日一题#814 排队

    题目链接: 排队 - 题目 - Daimayuan Online Judgehttp://oj.daimayuan.top/course/11/problem/814 思路:首先什么情况下差的平方会最 ...

  3. daimayuan每日一题#812 互质

    题目链接:互质 - 题目 - Daimayuan Online Judgehttp://oj.daimayuan.top/course/11/problem/812 要在1到m的闭区间内找到与给出数组 ...

  4. daimayuan每日一题#810 最短路计数

    题目链接: 提交记录 #239296 - Daimayuan Online Judgehttp://oj.daimayuan.top/submission/239296 思路: 一开始写复杂了,以为要 ...

  5. daimayuan每日一题#863 吃糖果

    思路:很明显的尺取,从两端不停向中间走,遇到相等就更新.不相等就小的移动. //#define pei_pei_//#include<bits/stdc++.h> #include< ...

  6. 2022-04-14每日刷题打卡

    2022-04-14每日刷题打卡 代码源--每日一题 上帝的集合 - 题目 - Daimayuan Online Judge 题目描述 现在上帝有一个空集合,现在他命令你为他执行下列三种操作 n 次, ...

  7. 2022-04-01每日刷题打卡

    2022-04-01每日刷题打卡 代码源--每日一题 Lusir的游戏 - 题目 - Daimayuan Online Judge Lusir 正在玩一个古老的基于 DOS 的游戏. 游戏中有 N+1 ...

  8. 2022-03-10每日刷题打卡

    2022-03-10每日刷题打卡 力扣--每日一题 589. N 叉树的前序遍历 给定一个 n 叉树的根节点 root ,返回 其节点值的 前序遍历 . n 叉树 在输入中按层序遍历进行序列化表示,每 ...

  9. 2022-03-02每日刷题打卡

    2022-03-02每日刷题打卡 代码源--div2每日一题 Alice的德州扑克 - 题目 - Daimayuan Online Judge 德州扑克是目前世界上最流行的扑克游戏,全世界有众多相关的 ...

最新文章

  1. cni k8s 插件安装_K8S 之 Flannel网络插件安装
  2. (七)JS基础知识四(搞定异步)【三座大山之三,必考!!!】
  3. 5W-Lora电台的远距离传输优势
  4. orcle mysql 查询_Oracle与Mysql的高级查询与难点sql
  5. Fiddler的下载安装与使用(流量抓包、手机抓包、拦截包、编辑包、重发包)
  6. 【Java】用键盘输入若干数字,以非数字字符结束,计算这些数的和和平均值
  7. LINUX系统服务总结之三:nis服务器全集
  8. 关于mysql单表支持的最大大小
  9. zoj3494BCD Code(ac自动机+数位dp)
  10. 嵌入式电路设计(从电路到系统)
  11. C++程序设计-第十周循环结构程序设计上机实践项目
  12. 移动磁盘拒绝访问要如何办啊
  13. 川大计算机学院李川,川大计算机学院硕导名单_跨考网
  14. echarts饼图自动显示数据
  15. python+itchat实现微信远程控制电脑
  16. 关于echarts无数据时显示问题
  17. iphone文件连接smb服务器,实用!三种iPhone与Windows电脑互传文件操作技巧,建议收藏...
  18. Android SQLite数据库导出/导入Excel
  19. 模块化高扩展性的前端框架 KISSY
  20. python 安装教程

热门文章

  1. HDMI端口辐射(EMI)超标解决方案
  2. 二叉树的后序遍历(递归和非递归)
  3. 【MATLAB100个实用小技巧】——界面设计(33-43)
  4. 传统企业PaaS平台功能设计与业务上云思考
  5. c 系统语言改为中文,主编设置win7系统英文版改成中文语言的操作技巧
  6. MongoDB $lookup函数实现两个表的关联查询+筛选+取特定值
  7. 二阶常系数非齐次线性微分方程特解的设定规则
  8. linux kde vga参数1366,Archlinux+KDE 下双屏VGA高分辨率设置
  9. 模型量化 pytorch2onnx
  10. SOFA Weekly | SOFAJRaft 发布、SOFAJRaft 源码解析文章合集