方程很简单

p[i][j] = min{dp[i-1][k] + |pos[i-1][k] - pos[i][k]|} + v[i][j];

循环求值肯定TLE,主要是绝对值不方便。好吧,我真的BI了狗了,竟然想不到怎么样去绝对值。F,只要从左到右dp一次,再从右往左dp一次,不就好了吗?????F。当然了,必须是选按位置排序。开始用单调队列,后来发现根本没必要了。

#include <iostream>
#include <cstdio>
#include <vector>
#include <algorithm> using namespace std;
struct Node{
int pos,val;
};
const int inf=1<<30;
Node map[55][1050];
bool cmp(Node a,Node b){
if(a.pos<b.pos) return true;
return false;
}
int que[1050];
int dp[55][1050]; int main(){
int T,n,m,x;
scanf("%d",&T);
while(T--){
scanf("%d%d%d",&m,&n,&x);
for(int i=1;i<=m;i++){
for(int j=1;j<=n;j++){
scanf("%d",&map[i][j].pos);
}
}
for(int i=1;i<=m;i++){
for(int j=1;j<=n;j++){
scanf("%d",&map[i][j].val);
}
sort(map[i]+1,map[i]+1+n,cmp);
}
for(int i=1;i<=n;i++){
dp[1][i]=abs(map[1][i].pos-x)+map[1][i].val;
}
int k,mm;
for(int i=2;i<=m;i++){
mm=inf;
k=1;
for(int j=1;j<=n;j++){
for(k;k<=n;k++){
if(map[i-1][k].pos>map[i][j].pos) break;
mm=min(mm,dp[i-1][k]-map[i-1][k].pos);
}
dp[i][j]=mm+map[i][j].pos+map[i][j].val;
}
k=n;
mm=inf;
for(int j=n;j>=1;j--){
for(k;k>=1;k--){
if(map[i-1][k].pos<map[i][j].pos) break;
mm=min(mm,dp[i-1][k]+map[i-1][k].pos);
}
dp[i][j]=min(dp[i][j],mm-map[i][j].pos+map[i][j].val);
}
}
int ans=inf;
for(int i=1;i<=n;i++)
ans=min(dp[m][i],ans);
printf("%d\n",ans);
}
return 0;
}

  

最新文章

  1. react Props 验证 propTypes,
  2. BOOST Voronoi Visualizer
  3. java 获取服务器 linux 服务器IP 信息
  4. POJ 2446 最小点覆盖
  5. [Jobdu] 题目1497:面积最大的全1子矩阵
  6. Java工程转换为Maven工程-b
  7. Getting Started Tutorial
  8. ADO.NET 代码示例
  9. BZOJ 1831 逆序对
  10. python RabbitMQ队列使用(入门篇)
  11. Swift - .plist文件数据的读取和存储
  12. 安装Windows2008操作系统 - 初学者系列 - 学习者系列文章
  13. 2019-04-05 Spring Boot学习记录
  14. vue+vuecli+webpack中使用mockjs模拟后端数据
  15. redis-server 使用
  16. pycharm sql语句警告
  17. js实现进度条效果
  18. laravel连sql server报invalid handle returned问题解决方案
  19. C/C++中的实参和形参,重点以及盲点,自己以前未知的
  20. Redis持久化配置-AOF

热门文章

  1. 高德,百度,Google地图定位偏移以及坐标系转换
  2. Git学习之序
  3. Android Eclipse 安装教程 2016.06.13版
  4. (转)Spring AOP的底层实现技术
  5. django 加日志
  6. Django的文件下载
  7. 扩增子图表解读5火山图:差异OTU的数量及变化规律
  8. Python 之数据类型
  9. CorelDRAW快速制作抖音幻影图像效果
  10. .net 内嵌 GeckoWebBrowser (firefox) 核心浏览器