luogu P5661【公交换乘】
时间:2019-12-14
本文章向大家介绍luogu P5661【公交换乘】,主要包括luogu P5661【公交换乘】使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
CSP2019 , PJt2
**做法:暴力加剪枝**
- 按照时间快排一遍,保证时间单调,以便后面剪枝
- 循环扫一遍,然后分类讨论:
1.当前是地铁,答案直接加上地铁的钱。
2.当前是公交,可以从后往前扫,找到编号最小(时间最早)的地铁优惠票,然后剪枝是如果当前时间已经过了优惠的时间,就直接break。如果找到符合条件的,标记一下,否则没有符合条件的,把答案加上公交的钱
$Code:$
#include<iostream> #include<cstdio> #include<algorithm> using namespace std; inline int read(){ register int x=0,v=1,ch=getchar(); while(!isdigit(ch)){if(ch=='-')v=-1;ch=getchar();} while(isdigit(ch)){x=(x<<3)+(x<<1)+(ch^'0');ch=getchar();} return x*v; } const int MAX=100005,N=105; struct GZ{int opt,p,t;}s[MAX]; inline bool cmp(GZ x,GZ y){return x.t<y.t;} int n,Ans,ce,vis[MAX]; int main(){ n=read(); for(register int i=1;i<=n;++i){ s[i].opt=read(),s[i].p=read(),s[i].t=read(); } sort(s+1,s+1+n,cmp); for(register int i=1;i<=n;++i){ if(s[i].opt==0){//subway Ans+=s[i].p; }else{//bus ce=-1; for(register int j=i;j;--j){ if(s[j].t<s[i].t-45){ break; } if(s[i].p<=s[j].p&&!vis[j]&&s[j].opt==0){ ce=j; } } if(ce==-1){ Ans+=s[i].p; }else vis[ce]=1; } } printf("%d\n",Ans); return 0; }
原文地址:https://www.cnblogs.com/Lates/p/12040492.html
- [OIDC in Action] 1. 基于OIDC(OpenID Connect)的SSO
- [OIDC in Action] 2. 基于OIDC(OpenID Connect)的SSO(纯JS客户端)
- [认证授权] 2.OAuth2授权(续) & JWT(JSON Web Token)
- [Cake] 0.C#Make自动化构建-简介
- [认证授权] 3.基于OAuth2的认证(译)
- [Asp.Net Core] 1. IIS中的 Asp.Net Core 和 dotnet watch
- kafka数据迁移实践
- HDFS 2.x 磁盘间数据均衡的一种可行办法
- Batik渲染png图片异常的bug修复全程记录
- Web应用服务器安全:攻击、防护与检测
- 基于Go Packet实现网络数据包的捕获与分析
- 动态追踪技术(四):基于 Linux bcc/BPF 实现 Go 程序动态追踪
- Hive 时间转换函数使用心得
- Flume-Hbase-Sink针对不同版本flume与HBase的适配研究与经验总结
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Ubuntu系统下网络配置文件解析与说明
- 详解Centos7扩展磁盘空间(LVM管理)
- 设置ssh无密码登录linux服务器的方法
- linux特殊字符及其作用大全
- CentOS7搭建gerrit 代码审查服务方法
- CNS图表复现08—肿瘤单细胞数据第一次分群通用规则
- Gunicorn运行与配置方法
- 如何使用Linux文本操作命令ed进行提权nov5详解
- linux系统用户管理与grep正则表达式示例教程
- 在Linux中如何查找最大的10个文件方法汇总
- CNS图表复现09—上皮细胞可以区分为恶性与否
- CentOS 6/7环境下通过yum安装php7的方法
- Centos7.3服务器搭建LNMP环境的方法
- Linux中解除端口占用的方法
- ubuntu服务器环境下安装python的方法