备战Noip2018模拟赛11(B组)T4 Path 好路线
10月27日备战Noip2018模拟赛11(B组)
T4路径好路线
题目描述
nodgd在旅游。现在,nodgd要从城市的西北角走到东南角去。这个城市的道路并不平坦,nodgd希望找出一条相对比较好走的路
.nodgd事先已经得到了这个城市的地图。地图上这个城市是一个nxm的矩形,nodgd现在站在坐标为(1,1)的位置,需要到达坐标为(n,m)的位置。这张地图上用非负整数标记了每个整数坐标点的海拔,坐标为(x,y)的位置的海拔是h(x,y).nodgd希望找出一条路线,路线中任意时刻都在向正东或向正南走,而且只在整数坐标点的地方转弯,使得路上经过的n + m -1个整数坐标点的海拔的方差最小。然而万能的nodgd当然知道该怎么走,也当然知道方差最小是多少,只是想顺便考考你。假如
有ķ个实数X1,X2,...,XK,平均值则定义为
方差的定义为
本题为了方便,只需输出的值就可以了
输入格式
第一行输入两个整数N,M,表示城市的大小。
接下来Ñ行,每行米个数,其中第X行第ý个数就是H(X,Y)。
输出格式
输出一行一个整数,表示的最小值。
输入样例
2 2
1 2
3 4
输出样例
14
样例解释
有两条路1-2-4和1-3-4,方差都等于14/9,所以方差最小值是14/9,输出14。
数据范围
对于30%的数据,1≤n,m≤10;
对于50%的数据,1≤n,m≤20;
对于100%的数据,1≤n,m≤50,0≤h(X,Y)≤50
思路
DP
dp [i] [j] [k]表示在第i行,第j列,海拔和为k的海拔的平方的最大和
dp [i] [j] [k] = min(dp [i] [j - 1] [k - h [i] [j]],dp [i - 1] [j] [k - h [i] [j]])+ h [i] [j] * h [i] [j];
至于平方和和方差之间的关系,稍微算一算就十分显然了。
代码
#include <iostream>
#include <cstdio>using namespace std;const int MAXN = 55;
const int MAXS = 5005;
const int INF = 0x3fffffff;int n, m, tmp, last;
int dp[MAXN][MAXN][MAXS];
int h[MAXN][MAXN], Max[MAXN][MAXN], Min[MAXN][MAXN];
long long ans;inline int read ();int main ()
{freopen("path.in", "r", stdin);freopen("path.out", "w", stdout);n = read (), m = read ();for (int i = 1; i <= n; ++ i){for (int j = 1; j <= m; ++ j){h[i][j] = read ();Max[i][j] = max (Max[i - 1][j], Max[i][j - 1]) + h[i][j];Min[i][j] = min (Min[i - 1][j], Min[i][j - 1]) + h[i][j];}}for (int i = 0; i <= n; ++ i){for (int k = 0; k <= Max[n][m]; ++ k){dp[i][0][k] = INF;}}for (int j = 0; j <= m; ++ j){for (int k = 0; k <= Max[n][m]; ++ k){dp[0][j][k] = INF;}}dp[0][1][0] = 0;dp[1][0][0] = 0;ans = 9223372036854775800;for (int i = 1; i <= n; ++ i){for (int j = 1; j <= m; ++ j){tmp = h[i][j] * h[i][j];for (int k = 0; k < Min[i][j]; ++ k){dp[i][j][k] = INF;}for (int k = Max[i][j] + 1; k <= Max[n][m]; ++ k){dp[i][j][k] = INF;}for (int k = Min[i][j]; k <= Max[i][j]; ++ k){last = k - h[i][j];dp[i][j][k] = min (dp[i - 1][j][last], dp[i][j - 1][last]) + tmp;}}}for (int k = Min[n][m]; k <= Max[n][m]; ++ k){//printf ("ans = %d, k = %d\n", ans, k);//printf ("dp[n][m][k] = %d\n", dp[n][m][k]); ans = min (ans, 1ll * dp[n][m][k] * (n + m - 1) - 1ll * k * k);}printf ("%d", ans);fclose(stdin);fclose(stdout);return 0;} inline int read ()
{char ch = getchar ();while (!isdigit (ch)) ch = getchar ();int x = 0;while (isdigit (ch)) {x = x * 10 + ch - '0';ch = getchar ();}return x;
}
备战Noip2018模拟赛11(B组)T4 Path 好路线相关推荐
- 备战Noip2018模拟赛20 (A组) T1 Cz 礼物
10月24日备战Noip2018模拟赛20(A组) T1 Cz礼物 题目描述 有Ñ种物品,第I种物品的价格为六,每天最多购买XI个. 有米天,第我天c♂x有无线的钱,他会不停购买能买得起的最贵的物品( ...
- 备战Noip2018模拟赛3(B组)T1 Apple 韬韬抢苹果
10月3日备战Noip2018模拟赛3(B组) T1 Apple韬韬抢苹果 题目描述 又到了收获的季节,树上结了许多韬韬,错了,是许多苹果,有很多个小韬韬都来摘苹果.每个韬韬都想要最大的苹果,所以发生 ...
- 备战Noip2018模拟赛3(B组) T2 Dance 开场舞蹈
10月3日备战Noip2018模拟赛3(B组) T2 Dance 开场舞蹈 题目描述 在全世界人民的期盼下,2008年北京奥林匹克运动会终于隆重召开了! 为了展示中华民族博大精深的优秀传统文化,负责开 ...
- 备战Noip2018模拟赛5(B组)T2 Tree 采果子
10月4日备战Noip2018模拟赛5(B组) T2 Tree采果子 题目描述 LYL大牛今天心情不错,于是走到埃及郊外旅游.他边走边向四周望望,发现周围有许多果树.这些树之间互相到达的时间LYL是知 ...
- 备战Noip2018模拟赛7(B组)T2 Pearl 数数
10月5日备战Noip2018模拟赛7(B组) T2珍珠数 题目描述 给定Ñ个整数,求值在某个范围内的数的个数. 输入格式 第一行为正整数ñ. 第二行有Ñ个整数(0 <=数值<= 231- ...
- 备战Noip2018模拟赛7(B组)T1 Voting 兔子选举
10月5日备战Noip2018模拟赛7(B组) T1 Voting 兔子选举 题目描述 兔子常常感到孤独,所以一组的兔子决定走到一起,并举行选美比赛,以确定它们之间谁拥有最漂亮的耳朵.规则如下: 每只 ...
- 备战Noip2018模拟赛10(B组) T1 Max 和最大
10月20日备战Noip2018模拟赛10 T1 Max和最大 题目描述 CYF的黑题,偏题,怪题,黑科技题,大码农题都做腻了,于是她想做一下签到水题,她希望从有一个长度为ň的整数序列(A1,A2,. ...
- EZ 2018 06 17 NOIP2018 模拟赛(十九)
这次的题目难得的水,但是由于许多哲学的原因,第二题题意表述很迷. 然后是真的猜题意了搞了. 不过这样都可以涨Rating我也是服了. Upt:链接莫名又消失了 A. 「NOIP2017模拟赛11.03 ...
- 【蓝桥杯Web】大一小白参与蓝桥杯模拟赛二期web组体会
目录 前言 一.相关比赛介绍 1.ACM国际大学生程序设计竞赛 2.蓝桥杯 3.GPLT团队程序设计天梯赛 4.leetcode周赛和双周赛 5.PAT 二.蓝桥杯 1.应该参加蓝桥杯吗? 2.如何进 ...
最新文章
- ThreadLocalRandom 安全吗
- 通达oa oracle数据库,通达OA 2016系统连接ORACLE 11g数据库(图文)
- JUC多线程:Atomic原子类与CAS原理
- 11.11 ntsysv:管理开机服务
- 进程控制2--exec族
- morse java_华威MORSE,华威数统那个比较好?
- MAC 下使用ipv6、ipv4观看电视、网络电视
- Shiro Shiro Web Support and EnvironmentLoaderListener
- 多线程下的进程同步(线程同步问题总结篇)
- 无论你是用什么样的模式去拓展市场
- exchange邮箱服务器端追踪某用户发送的邮件(发送状态、时间、主题等等信息)
- python中如何导入数据包_如何在python中发送数据包?
- 共享文件服务器密码更换,服务器共享文件密码
- u盘读写速度变慢了开始快后面特别慢卡顿解决方法
- 【短视频运营】抖音推送机制 | 账号 “ 完播率 “ 数据
- 直流无刷电机的一些介绍
- linux pipe命令,Linux入门教程:Linux下的pipe命令
- 云服务器被攻击了怎么解决
- 护肤品html作业,聚美优品美容产品热点.html
- 5G通信技术及技术特点