P1006 [NOIP2008 提高组] 传纸条

洛谷的题

网址:P1006 [NOIP2008 提高组] 传纸条 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

还是动态规划,这题和我上一篇博客写的题差不多

区别在于,这个地图不再是方阵,路线不能交叉,而且地图的大小可能大得多

但是思路都是相似的(或许你可以想想为什么路线不能交叉的影响不大)

解题思路就不赘述了

代码如下:

#include<stdio.h>
int getmax(int a, int b, int c, int d);
int m, n, map[51][51] = {0}, dp[51][51][51][51] = {0};int main(void)
{//输入scanf("%d%d", &m, &n);for(int i = 1 ; i <= m; i++)for(int j = 1; j <= n; j++)scanf("%d", &map[i][j]);//开始动态规划for(int i = 1; i <= m + n - 2; i++)//i代表走了几步{for(int x1 = 1; x1 <= i + 1 && x1 <= m; x1++){int y1 = 2 + i - x1;if(y1 > n) continue;for(int x2 = 1; x2 <= i + 1 && x2 <= m; x2++){if(x1 == x2)  continue;int y2 = 2 + i - x2;if(y2 > n)  continue;dp[x1][y1][x2][y2] = getmax(dp[x1 - 1][y1][x2 - 1][y2], dp[x1 - 1][y1][x2][y2 - 1], dp[x1][y1 - 1][x2 - 1][y2], dp[x1][y1 - 1][x2][y2 - 1]);dp[x1][y1][x2][y2] += map[x1][y1] + map[x2][y2];}}}//输出结果printf("%d", getmax(dp[m - 1][n][m][n - 1], dp[m][n - 1][m - 1][n], 0, 0));return 0;
}
int getmax(int a, int b, int c, int d)
{a = (a > b) ? a : b;a = (a > c) ? a : c;return (a > d) ? a : d;
}

但是在运行的时候,我遇到了前所未有的问题:

在主函数开始的时候(还没执行任何语句)就出现了segmentation fault!

为什么呢?

记得在算法书上看过,对于比较大的数组,最好把它设置为全局变量

因为动态变量是储存在栈堆段上的,栈堆段的内存有限,太大会内存溢出

小改了一下就解决了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/199430.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2023年甘肃省职业院校技能大赛(中职教师组)网络安全竞赛样题(二)

2023年甘肃省职业院校技能大赛&#xff08;中职教师组&#xff09; 网络安全竞赛样题&#xff08;二&#xff09; &#xff08;总分1000分&#xff09; 目录 模块A 基础设施设置与安全加固 A-1任务一 登录安全加固&#xff08;Windows&#xff0c;Linux&#xff09; A-2任…

如何通过Java的iTextPDF库制作一个PDF表格模板并填充数据

要使用Java的iTextPDF库制作一个PDF表格模板并填充数据&#xff0c;你需要遵循以下步骤&#xff1a; 添加依赖&#xff1a;首先&#xff0c;确保你的项目中包含了iTextPDF库的依赖。如果你使用Maven&#xff0c;可以在你的pom.xml文件中添加以下依赖&#xff1a; <depende…

IDEA中,光标移动快捷键(Shift + 滚轮前后滚动:当前文件的横向滚动轴滚动。)

除此之外&#xff0c;其他常用的光标移动快捷键包括&#xff1a; Shift 滚轮前后滚动&#xff1a;当前文件的横向滚动轴滚动。Shiftenter&#xff1a;快速将鼠标移动到下一行。Ctrl ]&#xff1a;移动光标到当前所在代码的花括号结束位置。Ctrl 左方向键&#xff1a;光标跳转…

Linux内核同步与互斥机制介绍

在内核中&#xff0c;可能出现多个进程&#xff08;通过系统调用进入内核模式&#xff09;访问同一个对象、进程和硬中断访问同一个对象、进程和软中断访问同一个对象、多个处理器访问同一个对象等现象&#xff0c;我们需要使用互斥技术&#xff0c;确保在给定的时刻只有一个主…

内衣迷你洗衣机什么牌子好?好用不贵的内衣洗衣机推荐

由于内衣洗衣机在目前的市场上越来越受欢迎&#xff0c;使得不少的小伙伴都在犹豫要不要为自己入手一台专用的内衣洗衣机&#xff0c;专门来清洗一些内衣裤等等贴身衣物&#xff0c;这个问题的答案是很有必要的&#xff0c;因为目前市场上的家用大型洗衣机对衣物只能够起到清洁…

SpringBoot_02

Web后端开发_07 SpringBoot_02 SpringBoot原理 1.配置优先级 1.1配置 SpringBoot中支持三种格式的配置文件&#xff1a; application.propertiesapplication.ymlapplication.yaml properties、yaml、yml三种配置文件&#xff0c;优先级最高的是properties 配置文件优先级…

前端又出新轮子Nue.js,但还是低代码更香!

前言 别TM卷了&#xff01;&#xff01;&#xff01; 自从前后端分离以来&#xff0c;前端前端的车轮滚滚向前&#xff0c;轮子造的越来越圆。每个人都在适应这个轮子的节奏&#xff0c;稍微不注意就会被甩出车轮之外。 调侃归调侃&#xff0c;既然口子已经开了&#xff0c;…

一键抠图2:C/C++实现人像抠图 (Portrait Matting)

一键抠图2&#xff1a;C/C实现人像抠图 (Portrait Matting) 目录 一键抠图2&#xff1a;C/C实现人像抠图 (Portrait Matting) 1. 前言 2. 抠图算法 3. 人像抠图算法MODNet &#xff08;1&#xff09;模型训练 &#xff08;2&#xff09;将Pytorch模型转换ONNX模型 &…

作业12.5

1.定义一个基类 Animal&#xff0c;其中有一个虛函数perform&#xff08;)&#xff0c;用于在子类中实现不同的表演行为。 #include <iostream>using namespace std; class Animal { private:int weight; public:Animal(){}Animal(int weight):weight(weight){}virtual …

LightDB to_char 三入参函数支持

文章目录 背景函数示例 背景 在信创适配中&#xff0c;从Oracle迁移过来的程序使用了TO_CHAR函数。 LightDB-X 23.3版本已经支持了两个入参的TO_CHAR函数&#xff0c;并不支持三个入参的TO_CHAR函数。LightDB-X 23.4版本对三个入参的TO_CHAR函数进行了支持。 函数示例 准备…

全网最新最牛的Appium自动化:Appium常用操作之TouchAction操作

TouchAction操作 Appium的辅助类&#xff0c;主要针对手势操作&#xff0c;比如滑动、长按、拖动等。其原理是将一系列的动作放在一个链条中&#xff0c;然后将该链条传递给服务器。服务器接受到该链条后&#xff0c;解析各个动作&#xff0c;逐个执行。 TouchAction类支持的动…

laravel 自定义密码验证方式

继承 EloquentUserProvider <?phpnamespace App\Providers;use Illuminate\Auth\EloquentUserProvider; use Illuminate\Contracts\Auth\ Authenticatable as UserContract;class ApiEloquentUserProvider extends EloquentUserProvider {public function validateCredent…

如何销售汽车之 汽车销售技巧和话术

如何销售汽车之 汽车销售技巧和话术 当前&#xff0c;汽车销售市场的竞争日益激烈&#xff0c;消费者对汽车的需求和要求也越来越高。但是市场竞争车型也非常多&#xff0c;如何更好的做好销售业绩突破&#xff0c;提高汽车销量&#xff0c;创造汽车销售佳绩&#xff0c;就需要…

什么是网络爬虫?有什么用?怎么爬?

嗨喽&#xff0c;大家好呀~这里是爱看美女的茜茜呐 【导读】 网络爬虫也叫做网络机器人&#xff0c;可以代替人们自动地在互联网中进行数据信息的采集与整理。 在大数据时代&#xff0c;信息的采集是一项重要的工作&#xff0c;如果单纯靠人力进行信息采集&#xff0c;不仅低…

线程池,及7大参数,4大拒绝策略

1. 线程池的基本概念 线程池由以下几个主要组件构成&#xff1a; 任务队列&#xff08;Task Queue&#xff09;&#xff1a; 用于存储等待执行的任务。工作线程池&#xff1a; 用于执行任务的线程集合。线程工厂&#xff08;Thread Factory&#xff09;&#xff1a; 用于创建…

k8s 安装部署

一&#xff0c;准备3台机器&#xff0c;安装docker&#xff0c;kubelet、kubeadm、kubectl firewall-cmd --state 使用下面命令改hostname的值&#xff1a;(改为k8s-master01)另外两台改为相应的名字。 172.188.32.43 hostnamectl set-hostname k8s-master01 172.188.32.4…

Matlab 生成license

参考下面两个帖子 https://ww2.mathworks.cn/matlabcentral/answers/389888-matlab https://www.mathworks.com/matlabcentral/answers/131749-id-id-id-id 登陆 https://ww2.mathworks.cn/licensecenter 针对R2020b版本,点击下面红框生成 ip addr | grep ether看第一行 根据…

Geodesic in Heat: 一种测地线计算方法

在之前的博客中&#xff0c;我已经介绍过了使用Fast Marching算法计算测地线。Fast Marching的好处是实现简单&#xff0c;方便扩展在点云上。但是缺点是精度不够&#xff0c;求解不平滑。早在2013年&#xff0c;Crane et al. [1]就已经提出利用热流来估算测地距离。我很早就知…

Hadoop学习笔记(HDP)-Part.14 安装YARN+MR

目录 Part.01 关于HDP Part.02 核心组件原理 Part.03 资源规划 Part.04 基础环境配置 Part.05 Yum源配置 Part.06 安装OracleJDK Part.07 安装MySQL Part.08 部署Ambari集群 Part.09 安装OpenLDAP Part.10 创建集群 Part.11 安装Kerberos Part.12 安装HDFS Part.13 安装Ranger …

一文7个步骤教你搭建测试web测试项目实战环境,

​今天小编&#xff0c;给大家总结下web 测试实战的相关内容&#xff0c;一起来学习下吧&#xff01; web项目实战可按顺序依次为&#xff1a;【搭建测试环境】、【需求评审】、【编写测试计划】、【分析测试点.编写测试用例】、【用例评审】、【执行用例提bug】、【测试报告】…