摘要: 从样例可看出同一外卖店某一时刻可能会有多个订单。 我们先将订单按时间排序,再按外卖店编号排序,这样同一时刻若存在多个订单,外卖店编号相等的一定相邻。 对某一时刻$T_i$的订单来说,我们累加该时刻同一外卖店编号的所有订单产生的优先级。 在累加优先级前,先计算出外卖店距离上次产生订单的时刻至$T$时刻 阅读全文
posted @ 2021-03-27 22:25 Dazzling! 阅读(163) 评论(0) 推荐(0) 编辑
摘要: 对于一一个序列a,若i<j且a[i]>a[j],则称a[i]与a[j] 构成逆序对。 使用归并排序可以在$O(nlogn)$的时间里求出一一个长度为n的序列中逆序对的个数。归并排序每次把序列二分,递归对左右两半排序,然后合并两个有序序列。 递归对左右两半排序时,可以把左右两半各自内部的逆序对数作为子 阅读全文
posted @ 2021-03-27 21:32 Dazzling! 阅读(227) 评论(0) 推荐(0) 编辑
摘要: 假设两地时间差为$d$,飞机飞机时间为$flytime$。 则去的实际花费时间为$flytime=arrivetime_1 - starttime_1+d$,回来的实际花费时间为$flytime=arrivetime_2-starttime_2-d$。 得$flytime = \frac{(arri 阅读全文
posted @ 2021-03-27 21:11 Dazzling! 阅读(95) 评论(0) 推荐(0) 编辑
摘要: 水题~。 const int N=1e5+10; struct Node { int yy,mm,dd; bool operator<(const Node &W) const { if(yy != W.yy) return yy < W.yy; if(mm != W.mm) return mm < 阅读全文
posted @ 2021-03-27 20:25 Dazzling! 阅读(63) 评论(0) 推荐(0) 编辑
摘要: 暴力做法 时间复杂度:\(O(n^3)\)。 int n; int main() { cin>>n; for(int i=0;i*i<=n;i++) for(int j=i;i*i+j*j<=n;j++) for(int k=j;i*i+j*j+k*k<=n;k++) { int t=n-i*i-j 阅读全文
posted @ 2021-03-27 14:31 Dazzling! 阅读(62) 评论(0) 推荐(0) 编辑