公共汽车,写一个程序,告诉司机怎么走能接到最多的乘客。

公共汽车刷卡计费系统 需求描述:某公司准备开发公共汽车刷卡计费系统,具体需求如下:司机在每到达一站时,点击到站按钮,通知系统已到达一站;乘客上下车时都要刷卡。上车刷卡通知系统该乘客已上车。在下车刷卡时,系统根据该乘客乘坐的站数,计算票价,并从卡中的余额中扣除。乘务员可查询某乘客的卡是否在上车时刷过,也可查询每个班次的运营情况(如,载客量和运营额)。管理员可以通过系统调节费率,记费方式等。1、需求获取(usecase-d 阅读详情

【问题描述】

一个城市的道路成了像棋盘那样的网状,南北向的路有n条,并由西向东从1标记到n,东西向的路有m条,并从南向北从1标记到m,每一个交叉点代表一个路口,有的路口有正在等车的乘客。一辆公共汽车将从(1,1)点驶到(n,m)点,车只能向东或者向北开.

写一个程序,告诉司机怎么走能接到最多的乘客。

 

 


【数据范围限制】

100%的数据:1 <= n <= 103, 1 <= m <= 103, 1 <= k <= 103;

每个路口的乘客数量不超过1000000。

代码:

#region 公共汽车接最多人
        public void GetBusMax()
        {

            int[,] road = null;
            int[,] MAX = null;
            int rows = 0;
            int conlums = 0;
            StreamReader sr = File.OpenText("bus.in");
            StreamWriter sw = File.CreateText("bus.out");

            string[] firstLine = sr.ReadLine().Split(" ".ToCharArray());
            rows = int.Parse(firstLine[0]);
            conlums = int.Parse(firstLine[1]);
            int k = int.Parse(firstLine[2]);
            road = new int[rows + 1, conlums + 1];
            MAX = new int[rows + 1, conlums + 1];
            string strLine = null;
            int n = 0;
            int m = 0;
            while ((strLine = sr.ReadLine()) != null)
            {
                string[] str = strLine.Split(" ".ToCharArray());
                n = int.Parse(str[0]);
                m = int.Parse(str[1]);
                k = int.Parse(str[2]);
                road[n, m] = k;
            }
            MAX[1, 1] = road[1, 1];
            for (int i = 1; i < rows + 1; i++)
            {
                for (int j = 1; j < conlums + 1; j++)
                {
                    if (i > 1 && j > 1)
                    {
                        if (MAX[i - 1, j] > MAX[i, j - 1])
                        {
                            MAX[i, j] = MAX[i - 1, j] + road[i, j];
                        }
                        else
                        {
                            MAX[i, j] = MAX[i, j - 1] + road[i, j];
                        }
                    }
                    else if (i > 1)
                    {
                        MAX[i, j] = MAX[i - 1, j] + road[i, j];
                    }
                    else if (j > 1)
                    {
                        MAX[i, j] = MAX[i, j - 1] + road[i, j];
                    }
                    else
                    {
                        MAX[1, 1] = road[1, 1];
                    }


                }
            }
            sw.WriteLine(MAX[rows, conlums]);
            sr.Close();
            sw.Close();
        }
        #endregion

司机和售票员问题-进程同步模拟设计 ⑴ 需求分析; 本程序的功能是模拟公车的司机和售票员的开门以及行车的过程,其实也就是一个典型的进程同步互斥问题,其中主要的两点是 1:司机开车的时候,售票员不能开门,(这里体现的是进程的互斥问题)车停之后,由司机通知售票员开门(这里体现的是进程的同步问题); 2:车门开着的时候,司机不能开车,等售票员把车门关上之后,由售票员通知司机开车。 ⑵ 功能设计(数据结构及模块说明); 本程序的设计原理比较简单,就是两大部分,一是司机的行车操作过程,另一个是售票员的开车门和关车门(以及售票,本程序不讨论售票 阅读详情

相关推荐

操作系统课设(JAVA)--司机与售票员

司机与售票员--操作系统课设

ziyusinian的博客 1364

ACM 遗憾题!!

做题感悟:这题其实不难,想的太多的,思路有点乱。 解题思路:                  状态压缩方程:   dp[ i ] [ j ] = max( dp[ i -1 ] [ j ] , dp [ i - m ] [ j-1 ] + sum[ i ] - sum[ i - m ] ) ; sum[ i ] 为前 i 项和 ,dp[ i ] [ j ] 代表选到第 i 个选择了 k 段的

Muti-Agent 2668

教学用得 公交换乘算法 c# 实现多次换乘到达

实现多次换乘得基本原理,教学用得 公交换乘算法 c# 实现多次换乘到达

公共汽车

题目描述:  一个城市的道路,南北向的路有n条,并由西向东从1标记到n,东西 向的路有m条,并从南向北从1标记到m,每一个交叉点代表一个路口, 有的路口有正在等车的乘客。一辆公共汽车将从(1,1)点驶到(n,m) 点,车只能向东或者向北开. 问:司机怎么走能接到最多的乘客。 【输入】 第一行是n,m和k,其中k是有乘客的路口的个数。 以下k行是有乘客的路口的坐标和乘客的数量。已知每个 路口

战场小包的博客 1053

用STM32F407做个USB声卡:从CubeMX配置到播放录音全功能实战(附源码)

本文详细介绍了如何使用STM32F407开发板实现USB音频设备的全功能实战,包括CubeMX配置、硬件连接、音频流处理和性能优化。通过双缓冲DMA机制和音频数据处理流程,开发者可以构建高质量的USB声卡系统,适用于录音和播放场景。附源码,助力快速上手STM32音频开发。

weixin_30301449的博客 516

用本地 Chrome + DeepSeek 实现浏览器自动化:browser-use 实战与踩坑记录

本文记录了使用本地Chrome浏览器结合DeepSeek API实现浏览器自动化的实战经验。作者通过browser-use项目连接本地Chrome(启动时需添加--remote-debugging-port=9222参数),并解决了DeepSeek API不支持response_format的问题,通过设置dont_force_structured_output=True和add_schema_to_system_prompt=True成功绕过。同时分享了任务描述需精准的重要性,避免Agent输出多余信息导

LY的博客 750

java解题公共汽车

公共汽车 【问题描述】 一个城市的道路成了像棋盘那样的网状,南北向的路有n条,并由西向东从1标记到n,东西向的路有m条,并从南向北从1标记到m,每一个交叉点代表一个路口,有的路口有正在等车的乘客。一辆公共汽车将从(1,1)点驶到(n,m)点,车只能向东或者向北开. 写一个程序,告诉司机怎么走能接到最多的乘客。  第一行是n,m,和k,其中k是有乘客的路口的个数。  以

a908799521的博客 3916

多思计算机组成原理实验:模型机课程设计

计算机组成原理实验教程 基于多思网络虚拟实验系统 张雯雰

Nick的博客 2万+

98.公共汽车

problem 4公共汽车 •【问题描述】 •一个城市的道路,南北向的路有n条,并由西向东从1标记到n,东西向的路有m条,并从南向北从1标记到m,每一个交叉点代表一个路口,有的路口有正在等车的乘客。一辆公共汽车将从(1,1)点驶到(n,m)点,车只能向东或者向北开. •问:司机怎么走能接到最多的乘客。 图片为一个正方形,中间有很多条线,每个交点有一个人数或者没有。 ...

weixin_30294021的博客 249

风力发电机并网模型建立及仿真验证

传统能源日益匮乏,环境污染日趋严重,全球向安全、可靠和环保的可持续能源体系转型迫在眉睫,风电迎来了重要的发展契机。近年来,全球风电迅猛发展,我国已成为世界风电新增装机容量第一的国家。然而,随着风电规模的不断增大,风电场接入对系统影响不容忽视。随着变速恒频风力发电系统优越的性能突出和大容量电力电子技术的成熟,风速随机性引起的功率波动及故障情况下的动态响应,对电能质量,系统电压、频率的稳定性产生的影响需要深入研究。因而,本文结合实际项目,针对变速恒频风力发电系统建模,端口动态特性及对电网电能质量、运行稳定性的影

毕业设计区博客 1639

【Qt】QByteArray详解

对象共享同一份数据,直到修改时才进行深拷贝,以节省内存和计算资源。:可存储任意二进制数据(如图片、音频、协议数据),不依赖字符编码。与编码(如 UTF-8、Latin-1)之间的桥梁(例如。• 补零规则确保奇数字符串能正确解析,避免数据截断。:内部自动分配和释放内存,无需手动管理。将输入的字符串视为十六进制编码数据,返回实际数据长度(不包括结尾的。的输入必须是有效的十六进制字符(,但针对 Qt 框架做了优化。:处理加密后的二进制结果(如。• 如果输入字符串长度为奇数,• 若输入长度为奇数,自动在。

CSUC的博客 1597

细讲动态规划坐标型

动态规划(Dynamic Programming 简称DP)是解决“多阶段决策问题”的一种高效算法。

JOSEPHCAMPBELL的博客 357

YOLO26魔改:ICIP2026 SDTA|单深度转置注意力注入C2PSA,长程依赖与局部细节双增强,mAP提升显著

多尺度适配:SDTA的深度卷积与C2PSA的空间注意力结合,增强对多尺度目标的结构感知,改善遮挡与密集场景下的检测鲁棒性。

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 293

操作系统: 司机与售票员的进程同步问题

司机与售票员的进程同步问题 在公共汽车上,司机和售票员的工作流程如图所示。 为保证乘客的安全,司机和售票员应 密切配合协调工作。 请用信号量来实现司机与售票员之间的同步。 司机 启动车辆 正常行车 到站停车 售票员 关车门 售票 开车门 图 司机和售票员工作流程图 在这个问题中没有资源的抢夺,所以无互斥...

~ 2万+

网表导入virtuoso后发现pg pin忘记connect_pg_net/globalNetConnect怎么办?

数模混合项目中经常需要一些需要到virtuoso去连接的线,比如IO上的pg和一些信号线,除了在pr工作中设置skip route之外还需要做好net的赋值,告诉工具虽然我没在物理上有连接,但是实际上应该连什么net,这部分提现在网表里。在Default Net Name中也填写net name,因为这个net需要做global操作,即在顶层定义这个net,所以需要在net name后加个!打开schematic,删除指定cell pin所接net的label。

m0_61544122的博客 969

vscode配置matlab工作环境

前面有两篇文章我们分别讲了在vscode里面如何配置C语言环境和python环境,那两篇文章总体来说比较复杂,当然这篇也有许多有趣的问题。 附上链接: 文章目录matlab简介基本要求code runner插件与matlab相关的插件添加路径小结code runner是否支持更多语言更多选择另一个选择 matlab简介 MATLAB是美国MathWorks公司出品的商业数学软件,用于数据分析、无线通信、深度学习、图像处理与计算机视觉、信号处理、量化金融与风险管理、机器人,控制系统等领域。 MATLAB是ma

Cachel Wood的博客 4540

在哪里等公共汽车最好

     我常常喜欢用一些身边的经历,给同事们出题,考虑把一些经典有趣的题目,拿出来分享。     前不久我们的产品经理还打算拿这个题目来考察面试者的应变能力。      先来看第一个题目吧:     在一个如下图的公共汽车站中,有A,B,C三个位置,请问在下面条件下,乘客在哪个位置等车最容易先上车(先抢到座位),或者说公交司机最愿意在那个位置停下。     1)该公交车从右向

pennyliang的专栏 1980

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

一个出租车司机是如何开出租的

这个司机太强劲了,要做生意额朋友好好看看。。。我要从徐家汇赶去机场,于是匆匆结束了一个会议,在美罗大厦前搜索出租车。一辆大众发现了我,非常专业的、径直的停在我的面前。这一停,于是有了后面的这个让我深感震撼的故事,象上了一堂生动的MBA案例课。为了忠实于这名出租车司机的原意,我凭记忆尽量重复他原来的话。 “去哪里……好的,机场。我在徐家汇就喜欢做美罗大厦的生意。这里我只做两个地方。美罗大厦,

zhoudshu的专栏 6444

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

操作系统 公交车司机与售票员进程协同活动问题 PV操作

使用信号量和PV操作实现公交车上司机进程和售票员进程协同活动 问题分析: 在汽车行驶过程中,司机活动与售票员活动之间的同步关系为: ① 售票员关车门后,向司机发开车信号,司机接到开车信号后启动车辆, ② 在汽车正常行驶过程中售票员售票,到站时司机停车,售票员在车停后开车门让乘客上下车。 因此司机启动车辆的动作必须与售票员关车门的动作取得同步,售票员开车门的动作也必须与司机停车取得同步。 在本题中,应设置两个信号量:S1、S2。S1表示是否允许司机启动汽车,其初值为0;S2表示是否允许售票员开门,其初值为0。

weixin_45790068的博客 2万+

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

操作系统P、V操作,司机-售票员问题(c++实现)

问题描述及信号量设定 设公共汽车上,司机和售票员的活动分别是: 司机:启动车辆–正常行驶–到站停车; 售票员:关车门–售票–开车门; 信号量(semaphore)的数据结构为一个值和一个指针,指针指向等待该信号量的下一个进程。信号量的值与相应资源的使用情况有关。当它的值大于0时,表示当前可用资源的数量;当它的值小于0时,其绝对值表示等待使用该资源的进程个数。注意,信号量的值仅能由PV操作来改变。 ......

中意你的博客 1万+

诚信,正在公共汽车上悄然传递着

  “来,麻烦你帮我递一下”“嗯,帮递一下”……“给你”“谢谢你!”   声音是从公共汽车上后门位置传来。上下班时间,由于上班族差不到都在这个时段去乘车,造成站台附近人群涌涌,车上人满为患。车到站了,人满蜂拥而上,前门位置站满了人,手臂根本伸不到打卡机位置。实在上不了,部分人只能从后门挤上去...

chouqijiang8163的博客 118

操作系统之经典同步问题(司机售票员、文件打印、多个生产者消费者、放水果吃水果、读者优先、写者优先、哲学家死锁问题)

一、司机与售票员进程同步问题二、PA、PB、PC合作解决文件打印问题三、多个生产者和多个消费者问题四、放水果吃水果问题五、读者写者问题六、哲学家吃饭问题。

荆鹏的博客 3844

我在上海赶飞机 出租司机给我上了一堂MBA课

我在上海赶飞机 出租司机给我上了一堂MBA课作者:老票 我要从徐家汇赶去机场,于是匆匆结束了一个会议,在美罗大厦前搜索出租车。一辆大众发现了我,非常专业的、径直的停在我的面前。这一停,于是有了后面的这个让我深感震撼的故事,象上了一堂生动的MBA案例课。为了忠实于这名出租车司机的原意,我凭记忆尽量重复他原来的话。 “去哪里……好的,机场。我在徐家汇就喜欢做美罗大厦的生意。这里我只做两个地方。

道喜技术日记 1740

公交车司机与售票员进程协同活动问题 PV操作

公交车司机与售票员进程协同活动问题 PV操作 设公共汽车上,司机和售票员的活动分别是: 司机的活动: 启动车辆;正常行车;到站停车; 售票员的活动:关车门;售票;开车门; 在汽车不断地到站、停车、行驶过程中,这两个活动有什么同步关系?用信号量和P、V操作实现它们的同步。 解: 在汽车行驶过程中,司机活动与售票员活动之间的同步关系为:售票员关车门后,向司机发开车信号,司机接到开车信号后启动车辆,在汽车正常行驶过程中售票员售票,到站时司机停车,售票员在车停后开车门让乘客上下车。因此司机启动车辆的动作必须与售票

weixin_44303677的博客 1万+

多线程经典问题-----乘客做公交车问题解答2

问题描述: 乘客乘坐公交车问题,司机,乘客,售票员协同工作,通过多线程模拟三者的工作。 司机:开车,停车 售票员:打开车门,关闭车门 乘客:上车,下车 解答: 通过使用CEvent 事件类,模拟三者协同工作。在解答1(点击打开链接),没有考虑乘客下车的情况,解答2考虑了乘客下车的情况。代码如下: 主类和主线程如下: #pragma once #include "afxmt.h"

聪明的狐狸 2502
上一篇: 彩票摇奖
下一篇: 01矩阵最大正方形
Yannnnnger
博客等级 码龄13年 4粉丝 11原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值