CSP2019第二题: 公交换乘

CSP 2019 公交换乘
题目来源:牛客网
题目:*
在这里插入图片描述
在这里插入图片描述

示例1
输入

6 
0 10 3 
1 5 46 
0 12 50 
1 3 96 
0 5 110 
1 6 135

输出

36

题意:
根据输入,计算地铁花费+不能用到优惠券的公交车的花费
知识点:
结构体
思路:

  • 题目相对简单:当输入是地铁就直接累计花费,如果是公交,就从前面开始遍历数据,看看是否有满足条件的乘坐地铁后的优惠券,无则累计该公交的花费
  • 储存变量时,可能想到用二维数组储存数据,一行就是出行一次,标记优惠券的情况。但是因为n能达到105,105*3 二维数组空间复杂度比较大(但不至于空间超出限制)。仔细看,其实后面输入的数据,我们只需要考虑前面的地铁的出行的情况,所以可以直接用三个变量储存当前数据(此时用二维数组略微有点浪费),如果是地铁出现,保存到结构体中即可,为了缩短后续遍历时间,结构体的序号为地铁的出现次数即可。
  • 设置结构体后,考虑遍历的复杂度,可能能达到n2,而n最大为10 5 ,一定会超时。再想办法缩短时间时,唯一可限定的就是时间间隔<=45min,所以遍历处理公交出行时最多就往前45个位子(如果有,没有就从0开始)。

数据约束:
题目数据相对还好,无约束
参考代码:

#include<bits/stdc++.h>
#define MAX_N 100005
using namespace std;
struct stu{int price;int time;int mark=1;//记录坐地铁后券的使用情况 int s;//标记乘坐的序号 
};
stu sub[MAX_N],bus[MAX_N];
int main(){int n,n0=0,num=0;int ty,pr,ti;//n0为地铁数,n1为公交数 cin>>n;for(int i=0;i<n;i++){cin>>ty>>pr>>ti;if(ty==0){ //标记地铁即可 sub[n0].price=pr;sub[n0].time=ti;sub[n0].s=i;n0++;num+=pr; //直接+钱 }else{int j=0,flag=1;n0-45>=0?j=n0-45:j=0;
//			cout<<"j: "<<j<<endl;for(j;j<n0;j++){ //价格更小,间隔《=45,是该公交之前的地铁在前, 券没用过 if(pr<=sub[j].price&&ti-sub[j].time<=45&&i>=sub[j].s&& sub[j].mark==1){sub[j].mark=0;flag=0;break;}}if(flag){num+=pr;}}}cout<<num; return 0;
} 

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

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

相关文章

谷粒商城实战笔记-vagrant避坑指南

文章目录 一&#xff0c;虚拟机磁盘空间不足问题原因解决方案 二&#xff0c;虚拟机导致C盘空间不足 一&#xff0c;虚拟机磁盘空间不足 使用vagrant管理虚拟机的过程中遇到了一个问题&#xff0c;虚拟机安装完成后&#xff0c;很快磁盘dev/sda1就满了&#xff0c;40G的空间&a…

Linux网络-小结

作者介绍&#xff1a;简历上没有一个精通的运维工程师。希望大家多多关注我&#xff0c;我尽量把自己会的都分享给大家&#xff0c;下面的思维导图也是预计更新的内容和当前进度(不定时更新)。 Linux服务器作为一个常用的网络服务器&#xff0c;主要的作用就是向客户端提供网络…

【Python】数据类型之字符串

本篇文章将继续讲解字符串其他功能&#xff1a; 1、求字符串长度 功能&#xff1a;len(str) &#xff0c;该功能是求字符串str的长度。 代码演示&#xff1a; 2、通过索引获取字符串的字符。 功能&#xff1a;str[a] str为字符串&#xff0c;a为整型。该功能是获取字符…

Java语言程序设计——篇十一(4)

&#x1f33f;&#x1f33f;&#x1f33f;跟随博主脚步&#xff0c;从这里开始→博主主页&#x1f33f;&#x1f33f;&#x1f33f; 欢迎大家&#xff1a;这里是我的学习笔记、总结知识的地方&#xff0c;喜欢的话请三连&#xff0c;有问题可以私信&#x1f333;&#x1f333;&…

嵌入式初学-C语言-练习三

#部分题目可能在之前的博客中有&#xff0c;请谅解&#xff0c;保证常见题型均被发出# 1.计算n以内所有正奇数的和 ? n值通过键盘输入 代码&#xff1a; 1 /*2 需求&#xff1a;计算n以内所有正奇数的和 ? n值通过键盘输入3 */4 #include <stdio.h>5 6 int main()7 …

HarmonyOS NEXT——奇妙的调用方式

注解调用一句话总结Extend抽取特定组件样式、事件&#xff0c;可以传递参数Style抽取公共样式、事件&#xff0c;不可以传递参数Builder抽取结构、样式、事件&#xff0c;可以传递参数BuilderParams自定义组件中传递UI组件多个BuilderParams自定义组件中传递多个UI组件 Extend…

【练习】使用DevEco Studio编写计数器案例

效果展示 默认状态 点击加号 点击减号 知识点 类型转换&#xff08;数字 和 字符串&#xff09; 字符串转数字 方法说明例子Number()字符串 直接转数字&#xff0c;转换失败返回NaN&#xff08;字符串包含非数字&#xff09; let str1: string 1.1 console.log(Number(str1)…

数论——线性同余方程、扩欧求解线性同余方程、线性组合、原根求解

线性同余方程 线性同余方程是形如 的方程&#xff0c;其中a 、b、m 为给定的整数&#xff0c;x 是未知整数。 扩欧求解线性同余方程 void mod_slover(int a, int b, int n) {int d, x, y, x0;d extend_gcd(a, n, x, y);if (b % d ! 0)cout << "no answer";…

Linux系统驱动(二)字符设备驱动

文章目录 一、ioctl函数&#xff08;一&#xff09;函数格式&#xff08;二&#xff09;ioctl命令码的组成1. 命令码的组成2. 自己封装命令码2. 内核提供了封装命令码的宏 &#xff08;三&#xff09;使用示例1. 驱动2. 应用 一、ioctl函数 Linux内核开发者想要将数据的读写和…

LabVIEW与CANopen实现自动化生产线的设备控制与数据采集

在某工厂的自动化生产线上&#xff0c;多个设备通过CANopen网络进行通信和控制。这些设备包括传感器、执行器和PLC&#xff0c;它们共同负责监测和控制生产过程中的关键参数&#xff0c;如温度、压力、速度等。为了实现对整个生产线的集中监控和管理&#xff0c;工厂决定使用La…

计算机毕业设计选题推荐-校园服务系统-Java/Python项目实战

✨作者主页&#xff1a;IT研究室✨ 个人简介&#xff1a;曾从事计算机专业培训教学&#xff0c;擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Python…

小程序开发_02项目构成

一、项目的基本结构 二、小程序的页面组成部分 三、json配置文件 ① project.config.json文件 作用&#xff1a;项目的配置文件&#xff0c;用来记录对小程序开发工具所作的个性化配置 ② sitemap.json 作用&#xff1a;是否允许被微信引擎搜索,不希望被搜索dis ③ app.jso…

AI图文创作革命:10步快速掌握自动化内容生成技巧

1.背景 新媒体时代&#xff0c;内容变得非常容易传播&#xff0c;主题及内容的质量直接影响访问量&#xff0c;如果按传统方式写一篇好的文章及配图&#xff0c;至少2天。 Ai 既然有海量的数据&#xff0c;且能够自动生成图文&#xff0c;我们需要给作者提供一个工具&#xff…

XML 学习笔记

简介&#xff1a; &#xff08;1&#xff09;XML&#xff1a;可扩展性标记语言&#xff0c;用于传输和存储数据&#xff0c;而不是展示数据&#xff0c;是W3C 推举的数据传输格式。 XML的标签必须自定义&#xff0c;但是在写标签名的时候一定要有含义。 XML 只能有一个根节点…

Linux驱动----总线

总线相关 总线注册和注销总线device对象----描述设备信息&#xff0c;包括地址&#xff0c;中断号和其他的一些自定义数据注册和注销device对象----指将device注册到mybus总线 driver对象----描述设备驱动的方法&#xff08;操作地址和中断&#xff09;注册和注销driver对象---…

MySQL第3讲--数据类型和表的修改和删除

文章目录 前言数据类型数值类型整数类型浮点数和定点数 字符串类型字符类型&#xff1a;文本类型&#xff1a;二进制数据类型 日期和时间类型实例分析 表的操作添加字段修改字段删除字段修改表名删除表 DDL总结DDL数据库操作DDL表操作 前言 上一节在MySQL第2讲–关系型数据库以…

WebSocket 协议介绍

前言 一.通用协议设计 参考链接 /* --------------------------------------------------------------- | 魔数 2byte | 协议版本号 1byte | 序列化算法 1byte | 报文类型 1byte | --------------------------------------------------------------- | 状态 1byte | …

从0开始搭建vue + flask 旅游景点数据分析系统( 六):搭建后端flask框架

这一期开始开发header部分&#xff0c;预期实现两个目标&#xff1a; 创建 Flask 项目导入旅游数据后端实现旅游数据的查询 1 python 环境 & 开发环境 python 安装和pycharm安装需要去网上找包&#xff0c;建议python使用3.8 或者3.9版本 2 新建项目 我们新建一个文件…

还没排上 SearchGPT ?比 Perplexity 更好用的国产开源平替了解一下?

有 AI 在的科技圈,似乎没有中场休息。除了大模型发布不断,各家科技大厂也在寻找着第一个「杀手级」AI 应用的落脚之地。 OpenAI 首先瞄准的是谷歌 1750 亿美元的搜索业务市场。7 月 25 日,OpenAI 带着 AI 搜索引擎——SearchGPT 高调入场。在演示 demo 中,搜索引擎的使用体…

贪吃蛇(使用QT)

贪吃蛇小游戏 一.项目介绍**[贪吃蛇项目地址](https://gitee.com/strandingzy/QT/tree/zyy/snake)**界面一&#xff1a;游戏大厅界面二&#xff1a;关卡选择界面界面三&#xff1a;游戏界面 二.项目实现2.1 游戏大厅2.2关卡选择界面2.3 游戏房间2.3.1 封装贪吃蛇数据结构2.3.2 …