🎆音乐分享 (点击链接可以听哦)
The Right Path - Thomas Greenberg
这道题小吉花了一坤时才弄明白,虽然花的时间有点长
但是至少是明白了
😎😎😎😎😎😎
1241. 外卖店优先级 - AcWing题库
这道题如果纯纯用暴力,也不是不能做,毕竟是蓝桥杯的题,还是可以拿到分的,但是拿不全
下面就是优化版本
⭐⭐⭐
注意用sort为pair排序时,先比较 .first,再比较 .second,
变化位置时, .first .second 一起变化
具体可以参考下面的代码
⭐⭐⭐
代码的总体思路就是先排序,把 ts 相同的放在一起
#include
#include #define x first
#define y secondusing namespace std;typedef pair 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 &#61; 0; i 5) st[id] &#61; true;last[id] &#61; t;//存下数 别忘记了}for (int i &#61; 1; i <&#61; n; i &#43;&#43; )//处理最后一个if (last[i] }
&#x1f354; score[id] - &#61; t - last[id] - 1
t 代表当前时间&#xff0c;last[id]代表 t 前一个的时间&#xff0c;因为要算出整块的时间&#xff0c;这样方便改变优先值
因为已经跳出while循环了&#xff0c;所以这一部分是没有接到订单的&#xff0c;所以是score[] -
为什么要 -1
比如 t &#61; 5,last[id] &#61; 2,那么就是 3&#xff0c;4两个数&#xff08;5-2-1&#xff09;
&#x1f354;最后一个订单怎么处理
Code over&#xff01;