首页 > 其他分享 >任务安排3

任务安排3

时间:2023-04-23 21:34:28浏览次数:42  
标签:d% int tt 安排 hh mid 任务 1ll

题目传送门

考虑这里的斜率 \(t_i+s\) 并不单调,所以用二分解决。

#include<bits/stdc++.h>
using namespace std;
#define L(i,l,r) for(int i=l;i<=r;++i)
#define R(i,l,r) for(int i=r;i>=l;--i)
const int N=300010;
int n,s,c[N],t[N],hh,tt,q[N];
typedef long long ll;
ll f[N];
int main(){
    // freopen("1.in","r",stdin);
    // freopen("1.out","w",stdout);
    // ios::sync_with_stdio(0);
    // cin.tie(0);
    // cout.tie(0);
    scanf("%d%d",&n,&s);
    L(i, 1, n){
        scanf("%d%d",t+i,c+i);
        t[i]+=t[i-1];
        c[i]+=c[i-1];
    }
    L(i, 1, n){
        int l=hh,r=tt;
        while(l<r){
            int mid=(l+r)>>1;
            if((f[q[mid+1]]-f[q[mid]])>1ll*(s+t[i])*(c[q[mid+1]]-c[q[mid]]))r=mid;
            else l=mid+1;
        }
        int j=q[r];
        f[i]=f[j]+1ll*(c[i]-c[j])*t[i]+1ll*(c[n]-c[j])*s;
        while(hh<tt&&(__int128)(f[q[tt]]-f[q[tt-1]])*(c[i]-c[q[tt]])>=(__int128)(f[i]-f[q[tt]])*(c[q[tt]]-c[q[tt-1]]))tt--;
        q[++tt]=i;
    }
    printf("%lld",f[n]);
    return 0;
}

标签:d%,int,tt,安排,hh,mid,任务,1ll
From: https://www.cnblogs.com/wscqwq/p/17347817.html

相关文章

  • 论文推荐:基于联合损失函数的多任务肿瘤分割
    以FFANet为主干,加入分类的分支,将模型扩展为多任务图像分割框架,设计了用于分类和分割的联合损失函数。FFANet+MTL完整文章:https://avoid.overfit.cn/post/6a605da56978443bb548e8f342cbda37......
  • 实验任务3 控制语句与组合数据类型应用编程
    实验任务11importrandom23print('用列表存储随机整数:')4lst=[random.randint(0,100)foriinrange(5)]5print(lst)67print('\n用集合存储随机整数:')8s1={random.randint(0,100)foriinrange(5)}9print(s1)1011print('\n......
  • 试验任务3 控制语句与组合数据类型应用编程
    1.试验任务11importrandom23print('用列表存储随机整数:')4lst=[random.randint(0,100)foriinrange(5)]5print(lst)67print('\n拥集合存储随机整数:')8s1={random.randint(0,100)foriinrange(5)}9print(s1)1011print('\n用集......
  • 任务安排2
    承接上文任务安排1。考虑优化转移。对方程变形得到\(f_j=(s+t_i)c_j+f_i-sc_n-t_ic_i\),我们可以发现形如一个\(y=kx+b\)的解析式。然后我们就可以维护一个下凸包,又因为横坐标是单调的,斜率也是单调的,每次都可以把队首的一些点删掉,就是队首的斜率\(\le\)当前的直线斜率\(s+t_......
  • activiti 工作流 quartz 任务调度
    activiti:工作流workflowquartz有四个重要的组件 1.Scheduler代表一个Quartz的独立运行容器,Scheduler将Trigger绑定到特定JobDetail,这样当Trigger触发时,对应的Job就会被调度。2.Trigger描述Job执行的时间触发规则。主要有SimpleTrigger和CronTrigger两个子......
  • 5、自动化流水线---触发任务
    自动化流水线---触发任务一:周期性构建(日程表格式)这是一种cron类型的构建机制,它按照预定义的时间周期启动任务;◼对于期望能够基于代码变更进行触的CI场景来说,周期性构建并非其最佳选项,但对于有些类型的任务,它却也能够通过精心编排的周期性构建来避免资源冲突;Jenkinscron语法......
  • 通过django-background-tasks执行定时任务
    1.安装django-background-taskspipinstalldjango-background-tasks2.在Django项目的settings.py文件中添加以app:INSTALLED_APPS=[#otherapps'background_task',]3.创建一个包含需要执行的任务函数:frombackground_taskimportbackgroundimportrando......
  • hiveSQL mapreduce任务调优
    sethive.merge.mapredfiles=true;--在Map-Reduce的任务结束时合并小文件setmapred.max.split.size=30000000;--决定每个map处理的最大的文件大小,单位为B--setmapred.min.split.size=10000000;--公司集群默认值--setmapred.min.split.size.per.node=;......
  • Linux系统之计划任务的配置与管理
    (Linux系统之计划任务的配置与管理)一、crontab介绍1.crontab命令常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行。2.该词来源于希腊语chronos(χρνο),原意是时间。通常,cronta......
  • 任务栏搜索的默认应用修改
    Windows任务栏搜素一直捆绑着edge+bing,如果要使用默认浏览器和搜索引擎,可以安装MSEdgeRedirect如图文字描述安装后在设置->AdditionalRedirections->BingSearch->选择自定义搜索引擎,并且是默认的浏览器打开为了更好的体验,可以设置ServiceModeOptions->StartService......