重庆一中Vijos 【训练题】步步为零 P1428 题解
来源:互联网 发布:vb时间控件index 编辑:程序博客网 时间:2024/04/30 11:43
题解:
此题是一道比较简单的一道动态规划题目
设状态转移方程时容易想到的是 d[i,j] = 从最下面一格走到(i,j)的最佳值,但这样定义显然行不通,因为“最佳值”定义得太抽象,没办法描述。
所以应该定义为:d[i,j,k] = 从最下面一格走到(i,j)经过一系列加减拿到k可不可行。
但是此题的方程比较繁琐,要分两种情况,这里不细说了,大家可以在代码的第70-90行去看。
在做这道题的时候我遇到了一个问题,就是ready(0函数计算所有和的值的时候,在第40行。
一开始j没有初始化我就在使用,其实是一个笔误,我本来准备写1的。在本机上完全可以测试通过,但交上题库总是内存越界,最上面的check我就是写来检查越界的。遗憾的是check没有检查到任何错误,
因为在我的编译器上j被初始化了…………最后我把程序一小段一小段的交到题库上才发现是这里错了,调了接近一个小时…………orz
代码:
题目描述:
题目网站
时间限制:2秒 内存限制:128M 【问题描述】
一个特殊的数字阵列,共有2*N-1行,每个方格中有一个数码Ai(-50<=Ai<=50),例如N=4的情况。
HB从最下面方格出发,每次可以跳到上一行与自己所在格子相邻的其中一个方格内(例如在最下面的7中,可以跳到上一行的10和8中),他每到达一个方格,就将该方格的数记录下来。当他到达最顶格子的时候,拿出记录数字,可以在任意两个数字间添加“+”或“-”号,使得计算的结果m最接近0。现在请你帮助他。
【输入格式】
第一行是N,接下来2N-1行由上到下给出了表格中每行的每个方格中的数字,第i+1行的第j个数字对应于表格中第i行的第j个数字。 【输出格式】
输出只有一行,是你所求出的最接近零的计算结果的绝对值 【输入样例】
4
2
3 1
-3 5 7
6 10 -2 20
-7 -5 -8
10 8
7
【输出样例】
0
【数据范围】
1<=N<=30
【来源】
最优解7+8+(-5)+(-2)-5-1-2=0
或7+10+(-7)-6+(-3)-3+2=0
或7+10+(-5)-10-5+1+2=0
或+10+(-5)+(-2)-5-3-2=0
0 0
- 重庆一中Vijos 【训练题】步步为零 P1428 题解
- 重庆一中Vijos 【训练题】花店橱窗布置 P1426
- 步步为零
- Vijos P1428 贪婪格尔曼
- Vijos p1428 贪婪格XX
- Vijos - 1060 盒子 递推+优化 重庆一中高2018级竞赛班第七次测试 2016.8.4 Problem 1
- NOIP2016 模拟赛[一中题]题解&总结
- Vijos - 1037 搭建双塔 动态规划(DP) 重庆一中高2018级竞赛班第七次测试 2016.8.4 Problem 2
- Vijos - 1488 路灯的改建计划 动态规划 重庆一中高2018级竞赛班第九次测试 2016.9.10 Problem 3
- 4009.步步为赢
- Vijos p1052 题解
- 区间 (vijos 1439) 题解
- 第三次训练题解题报告
- 一中 2.20 哈希专题 题解
- 步步为“赢”管理项目
- 步步为“赢”管理项目
- 步步为“赢”管理项目
- 步步为“赢”管理项目
- 索引详解
- 使用uiautomator做UI测试
- 第六章 6.3.2节练习
- 我来更新下进度(2)
- 访问Google、Youtube等网站
- 重庆一中Vijos 【训练题】步步为零 P1428 题解
- C字符串逆序、逆置
- 重装系统后mysql数据恢复
- WIN32服务程序(Service)VC++封装
- Linear Basis Function Models
- Codeforces Round #273 (Div. 2) C. Table Decorations
- Codeforces Round #272 (Div. 2)
- 破壳漏洞(shellshock)分析CVE-2014-6271
- 数学之美系列二十一 - 布隆过滤器(Bloom Filter)