当前位置: 首页 > news >正文

【AcWing】学了一坤时才明白的一道题

🎆音乐分享 (点击链接可以听哦)

The Right Path - Thomas Greenberg
 



 

这道题小吉花了一坤时才弄明白,虽然花的时间有点长

但是至少是明白了

😎😎😎😎😎😎 

1241. 外卖店优先级 - AcWing题库 

 

这道题如果纯纯用暴力,也不是不能做,毕竟是蓝桥杯的题,还是可以拿到分的,但是拿不全

下面就是优化版本

⭐⭐⭐

注意用sort为pair排序时,先比较  .first,再比较  .second,

变化位置时,  .first  .second 一起变化

具体可以参考下面的代码

⭐⭐⭐

代码的总体思路就是先排序,把 ts 相同的放在一起 

#include <iostream>
#include <algorithm>#define x first
#define y secondusing namespace std;typedef pair<int, int> PII;const int N = 100010;int n, m, T;
int score[N];//优先级
int last[N];//店铺i上一次有订单的时间 
bool st[N];//是否加入到优先缓存中PII order[N];int main()
{scanf("%d%d%d", &n, &m, &T);for (int i = 0; i < m; i ++ ) scanf("%d%d", &order[i].x, &order[i].y);// ts idsort(order, order + m);for (int i = 0; i < m;){int j = i;while (j < m && order[j] == order[i]) j ++ ;//代表order[].x order[].y都对应相等int t = order[i].x, id = order[i].y, cnt = j - i;i = j;score[id] -= t - last[id] - 1;//时间差,具体看下面的解释if (score[id] < 0) score[id] = 0;if (score[id] <= 3) st[id] = false; // 以上处理的是t时刻之前的信息score[id] += cnt * 2;if (score[id] > 5) st[id] = true;last[id] = t;//存下数  别忘记了}for (int i = 1; i <= n; i ++ )//处理最后一个if (last[i] < T){score[i] -= T - last[i];if (score[i] <= 3) st[i] = false;}int res = 0;for (int i = 1; i <= n; i ++ ) res += st[i];printf("%d\n", res);return 0;
}

 🍔 score[id] - = t - last[id] - 1

t 代表当前时间,last[id]代表 t 前一个的时间,因为要算出整块的时间,这样方便改变优先值

因为已经跳出while循环了,所以这一部分是没有接到订单的,所以是score[] -  

为什么要 -1

比如 t = 5,last[id] = 2,那么就是 3,4两个数(5-2-1

🍔最后一个订单怎么处理

 Code over!

http://www.lryc.cn/news/35122.html

相关文章:

  • ES6的export和import
  • ASEMI高压MOS管20N60参数,20N60尺寸,20N60体积
  • 【备战面试】TCP的三次握手与四次挥手
  • 【模板进阶】
  • Tech Talk | 电致变色技术带来的智能AR体验
  • ACWING蓝桥杯每日一题python(持续更新
  • 【Linux】进程状态(阻塞、挂起、僵尸进程)
  • 规约第二章
  • 2019年MathorCup数学建模C题汽配件制造业中的生产排程问题解题全过程文档及程序
  • ARM uboot 的移植3 -从 uboot 官方标准uboot开始移植
  • 华为OD机试 - 快递货车(C 语言解题)【独家】
  • 连接微信群、Slack 和 GitHub:社区开放沟通的基础设施搭建
  • 数据中台架构体系理解
  • 高并发性能指标:QPS、TPS、RT、并发数、吞吐量
  • 【微信小程序】-- 案例 - 本地生活(列表页面)(三十)
  • 华为OD机试题,用 Java 解【一种字符串压缩表示的解压】问题
  • 所有科研人警惕,掠夺型期刊和劫持型期刊的区别,千万别投错了
  • 超详细CentOS7 NAT模式(有图形化界面)网络配置
  • 华为OD机试题,用 Java 解【英文输入法】问题
  • 【Redis】主从集群 实现读写分离(二)
  • 【JavaEE】前后端分离实现博客系统(页面构建)
  • MyBatis的基本使用
  • 看完书上的链表还不会实现?不进来看看?
  • 【批处理脚本】-3.2-call命令详解
  • 华为OD机试题,用 Java 解【寻找相同子串】问题
  • 思腾合力深思系列 | 四款高性能 AI 服务器
  • Vue3做出B站【bilibili】 Vue3+TypeScript+ant-design-vue【快速入门一篇文章精通系列(一)前端项目案例】
  • 2.3操作系统-进程管理:死锁、死锁的产生条件、死锁资源数计算
  • 人物百科怎么建?个人百度百科创建的注意事项
  • ArrayList与LinkedList的区别 以及 链表理解