[JZOJ5378]闷声刷大题

2023-11-24 02:40
文章标签 闷声 jzoj5378 刷大题

本文主要是介绍[JZOJ5378]闷声刷大题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

题目描述

这里写图片描述
这里写图片描述

分析

这道题原本是线段树模拟网络流的,但是有个东西叫凸函数优化。
设f[k]表示做k道题的代价和,那么f(k)是一个凸函数,显然,f(i-1)比f(i)要小,而f(i+1)-f(i)>f(i)-f(i-1)。我们又知道如何在不考虑做几道题限制的时候最小的代价(显然,在没有改变条件之前,什么都不选就是做法)。现在,我们可以设定一个常数c,每次匹配的代价都-c,这样,最小的代价就不一定是做0道题了。先不考虑如何贪心,分析可知,我们只要二分c,使他取一个适当的值,就能让匹配的个数是K;如果不是,也只是因为K和K-1和K+1之类的差值都一样(斜率相同),都是c,这个可以计算。
考虑贪心?一个套路是,我们把a,b合并,看成是n个括号,寻找最佳合法括号序,加入a时,往数据结构里扔a[i]-c,遇到b时,如果数据结构的最小值mn+b[i]<0,那么匹配他们,答案+mn+b[i];然后,由于有可能后面的b可以代替b[i],我们再把-b[i]插入回去。
做完了,两个log,难过,我开了个O2…

分析

#pragma GCC optimize(2)
#include<cstdio>
#include<algorithm>
#include<cmath>
#include<cstring>
#include<set>
using namespace std;
#define fo(i,j,k) for(i=j;i<=k;i++)
#define fd(i,j,k) for(i=j;i>=k;i--)
#define cmax(a,b) (a=(a>b)?a:b)
#define cmin(a,b) (a=(a<b)?a:b)
typedef long long ll;
typedef double db;
const int N=2e5+5;
struct rec
{ll v;int inc;
};
multiset<rec> tr;
multiset<rec> :: iterator it;
bool operator <(rec a,rec b)
{return a.v<b.v;
}
ll tmp,l,r,mid;
int a[N],b[N],cnt,n,K,i;
void run(int x)
{tmp=cnt=0;tr.clear();fo(i,1,n){tr.insert({a[i]-x,1});it=tr.begin();if ((*it).v+b[i]<0){tmp+=(*it).v+b[i];cnt+=(*it).inc;tr.erase(it);tr.insert({-b[i],0});}}
}
int main()
{freopen("t3.in","r",stdin);//freopen("orz.out","w",stdout);scanf("%d %d",&n,&K);fo(i,1,n) scanf("%d",a+i);fo(i,1,n) scanf("%d",b+i);l=0;r=2e9;while (l<r){mid=(l+r)/2;run(mid);if (cnt<K) l=mid+1;if (cnt>K) r=mid-1;if (cnt==K) l=r=mid;}run(l);if (cnt!=K) tmp+=1ll*(K-cnt)*l;tmp+=K*l;printf("%lld",tmp);
}

这篇关于[JZOJ5378]闷声刷大题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/421112

相关文章

对不起,我们要闷声搞钱了

对不起,我们要闷声搞钱了 你们经历过迷茫吗?什么是迷茫,就是对什么事情都提不起兴趣,未来的路也不知道该怎么走,甚至一度对自己产生怀疑和厌恶的感觉。 我想,大部分都经历过这种感觉吧,回想自己的职业生涯,这种迷茫的感觉我至少经历过三次。 第一次,就是13年还在深圳教书的那会儿。那时候的自己对讲课对教书已经游刃有余,倒数第一的班被我接手后都能给他拔到顺数第一,学校的各种活动、比赛,也一样拿第一拿到

炫富神器,简单无脑粘贴复制,闷声发财,当天见收益,无上限封顶

项目主打简单、暴力、易操作、可复制,单人可做、不靠关系走门路、不重投资、可复制放大! 今天给大家带来的这个项目,有点暴力,请先做好心理准备!谨慎观看!! 这个项目原理是利用软件生成炫富视频,满足各类人的炫富需求,具体你是用来交友还是打造人设还是…,咱们这里不去深究,咱们主要是通过各渠道发布出售软件卖卡密获益,我带你看看我是如何做到日入15W的。 课程目录: 1、项目介绍 2、准备工作 3

副业赚钱攻略:给工资低的你6个实用建议,闷声致富不是梦

经常有朋友向我咨询,哪些副业比较靠谱且能赚钱。实际上,对于大多数打工族而言,副业不仅是增加收入的途径,更是利用业余时间提升自我、实现价值的重要方式。 鉴于此,今天我想和大家分享六个值得尝试的副业,希望能为你们带来一些启发和帮助。 1,自媒体写作是一个不错的选择。你可以在今日头条等平台发表文章,从图文、问答到付费专栏,多种形式任你挑选。无论你对文史、健康还是母婴等领域感兴趣,都能在这里找到属于你

强品类弱品牌的茶叶、生鲜、传统滋补生意,是怎样在直播间里闷声发大财的?...

自2023年下半年以来,我们陆续关注了新能源车、服装饰品、时尚潮流、美妆护肤,在整体大盘表现趋于保守、没有呈现出显著增长的态势之下,各大主流赛道自然也是几家欢喜几家愁。 前段时间我们发了一篇聚焦用户洞察的文章《面对越来越“不好糊弄”的消费者,品牌该去哪里找增长》,里面也明确亮出了我们的观察结论——“宏观的好与坏不能成为能否增长的借口,赚钱的机会永远都有,就看你能否找对路径”。 于是,有不少读者

闷声做事,用结果说话,只跟小范围的人分享过程

一个朋友对我说,“我喜欢说的少,做得多的人,他没有说多少话,却能做成很多事。” 这是对我的一个善意的提醒,确实,大家都喜欢这样的人,低调,却能够把很多事办成的人。 闷声做事,用结果说话 重要的事,小范围内分享 做一件事,有计划,就去干,说的多,错的多。有些事,只跟合伙人,或者亲密的人说,分享就可以。 关键是用结果说话,网上很流行的一句话就是,“结果不会陪你演戏。”,我的一个领导,管理着50人

闷声干大事!腾讯捐了个JDK!

来源:OSC开源社区 6 月 11 日,腾讯正式宣布将打磨多年的编译器软件 OpenKona JDK 捐赠给开放原子开源基金会,并联合数以百万计开发者,共建国产编译器基础软件。 相较于代码开源,捐赠不仅包括全部源代码,还涵盖了软件包、产权、商标、构建与测试基础设施、社区基础设施等。 据介绍,OpenKona 是基于 OpenJDK 开源项目打造的发行版之一,性能比社区版本提高 15% 以上,尤

闷声发大财的ARM凭什么这么牛?

有一家公司一直保持着低调和神秘,但这并不妨碍它拥有极高的市占率和让人艳羡的利润率。它是英国最顶尖的科技公司之一,也曾被《福布斯》评为世界五大最具创新力公司之一,可是直到去年孙正义以320亿美元的价格(43%的溢价)收购了这家公司,它的名字才开始出现在人们的视线中。 它就是半导体知识产权提供商ARM,或者说它是一家不生产芯片的芯片商,而大家耳熟能详的芯片商一般是英特尔、AMD、三星、高通等公司。

雅乐在中东闷声发大财:单季营收7609万美元 净利2035万美元

雷递网 雷建平 8月11日报道 语音社交和娱乐平台Yalla Group Limited(股票代码: YALA,中文名:雅乐科技)日前公布财报。财报显示,雅乐科技2022年第二季度营收为7609万美元,较上年同期的6662万元增长14%。 雅乐科技2022年第二季度社交服务收入5265.6万美元;游戏服务收入2334.1万美元。 雅乐科技2022年第二季度平均月活跃用户数量为2992万,较上年

赢麻了!smardaten闷声干大事,竟然用无代码开发了复杂小程序!

本文目录 一、【前言】二、移动端项目实战:关爱云服务平台2.1 项目背景2.2 6大场景功能拆解(1)场景1-首页(2)场景2-找活动(3)场景3-找组织(4)场景4-找服务(5)场景5-个人中心(6)场景6-关爱上访 2.3 典型功能开发详解(1)多级筛选(2)顶部搜索框(3)布局与画布(4)底部导航 2.3.2 其他复杂功能开发(1)页签组件(2)二开组件(3)海报分享 三、总结