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

「JOIST2023-ビーバーの合唱(Chorus)」题解

ビーバーの合唱(Chorus)

sol

这道题如果常规思路做的话,按常理来说,在斜率优化时理应额外开一个队列储存所有不应被加入队列的决策点,但不加也可以过,然而按照常规思路解释为什么可以不开不是很容易。详见洛谷题解区的部分题解,这里就不详加讲解了。

考虑图像法,一个 A 就右移一格,B 就上移一格。序列合法的必要条件是路径必须位于对角线右下,详见下图。这个等价于任意前缀 A 的数量不应多于 B 的数量。初始序列可能有不合法的前缀,预处理一下使其合法即可,这是不劣的。具体地,记 \(c_i\) 为第 \(i\)B 之前的 A 的数量,若存在 \(c_i<i\),必然交换 \(i-c_i\)A 到当前点左侧。

es788j99

上图中黑色的路径就是原序列(我们预处理之后得到的序列)对应的路径,考虑 \(k\) 段子序列的限制,首先每一段子序列显然都由第 \([l,r]\)A 和第 \([l,r]\)B 组成,可以调整法简单证明,然后有一个很妙的想法是,可以将 \(k\) 段子序列视作 \(k\) 个峰,如上图中红色路径就可以视作 \(2\) 个峰,也就分别对应两段子序列。

一个峰的简单定义为如上图,从一点 \((l,l)\) 一直往右走到 \((l,r)\) 然后再一直往上走到 \((r,r)\),等价于第 \([l,r]\)A B 组成的一段合法子序列,满足所有 B 位于 A 右侧。

然后很妙的一点是,一种红色路径的代价为所有黑色路径之下红色路径之上的区域的面积,也就是上图中绿色部分。考虑交换一对相邻的 A B,在图中表现为将一个 \(1\times 1\) 的转折部分沿这个 \(1\times1\) 的对角线翻折,也就是原来先往右再往上变成先往上再往右,反之同理。那么绿色部分的面积就是把所有红线之上的黑线翻折到红线的代价。然后考虑红线之下的黑线为什么不用翻上去,这是因为我们只要求各段内满足这个性质,但各段在原序列上不一定连续,那么对于红线以下的黑线,它们就属于不同的几段(可以把竖线向左平移到最近的红线,横线向上平移到最近的红线,就是它们各自属于的段),因此它们之间的相互位置关系并不重要,并不需要进行修改,也能找到对应的子序列合法地分配它们。

因此我们可以对每一个峰计算出它的代价,也就是原路径在其之下的面积。这是简单的,对一个峰 \([l,r]\),考虑找到所有在左边界以内的竖线,然后差分一下求得面积即可。

如果不考虑峰的数量限制的话,上面就已经可做了,不难发现可以斜率优化,且横坐标与斜率均满足单调性,可以 \(O(n)\) 单调队列实现。然后考虑峰的限制,不难发现满足凸性,可以 WQS 二分,然后就没了。

code

const int N=2e6+5;int n,k,ca,cb;
string s;
int c[N];
ll ans,pre[N],sum[N],cnt[N];
int q[N],hd,tl;
ll f[N],g[N];
ll X(int i){return i;}
ll Y(int i){return f[i]+pre[i-1]+i;}inline bool chk(ll m){q[hd=tl=1]=1;rep(i,2,n+1){while(hd<tl&&i*(X(q[hd+1])-X(q[hd]))>Y(q[hd+1])-Y(q[hd]))++hd;f[i]=Y(q[hd])-X(q[hd])*i+(cnt[i-1]+1)*(i-1)-sum[i-1]+m,g[i]=g[q[hd]]+1;while(hd<tl&&(Y(i)-Y(q[tl]))*(X(q[tl])-X(q[tl-1]))<(Y(q[tl])-Y(q[tl-1]))*(X(i)-X(q[tl])))--tl;q[++tl]=i;}return g[n+1]<=k;
}inline void Main(){cin>>n>>k>>s;s=' '+s;rep(i,1,n<<1)if(s[i]=='A')++ca;else c[++cb]=ca;rep(i,1,n)if(c[i]<i)ans+=i-c[i],c[i]=i;rep(i,1,n)pre[i]=pre[i-1]+c[i],++cnt[c[i]],sum[c[i]]+=c[i];rep(i,1,n)cnt[i]+=cnt[i-1],sum[i]+=sum[i-1];ll l=0,r=1e12;while(l<r){ll m=l+r>>1;if(chk(m))r=m;else l=m+1;}chk(l);put(ans+f[n+1]-k*l);
}
http://www.sczhlp.com/news/15353/

相关文章:

  • 洛谷 - P2746 [IOI 1996 / USACO5.3] 校园网 Network of Schools
  • 个人网站开论坛seo对网络推广的作用是什么?
  • 金华市住房建设局网站怎么自己做一个小程序
  • 供应商管理系统软件srm保定seo排名
  • 男女做暧暧试看网站49百度搜索关键词统计
  • 用百度网盘做视频网站微信引流推广
  • 广州品牌网站建设 优美百度权重高的网站有哪些
  • 宣讲家网站两学一做友情链接的网站
  • 建行门户网站优化大师手机版下载安装app
  • 做阿里巴巴网站营销型网站的特点
  • 广告制作网站精准营销名词解释
  • 简约型网站开发旺道seo优化软件
  • 网站建设模板是什么网址大全123
  • dota2海涛做的网站做网站排名优化的公司
  • 新疆的网站有哪些阿里云域名注册万网
  • 海盐建设局网站百度关键词搜索量
  • 强化学习-Policy Gradient
  • 记录---自动生成前端路由最佳实践
  • postgresql删除数据库,提示有其它会话正在使用数据库
  • 牛客周赛 Round 105【D题:重排构造题解】
  • 机器人焊机智能流量调节
  • 做网站除甲醛需不需要营业执照杭州网站
  • 免费自己做网站手机抖音seo怎么做的
  • 新手做网站设计百度怎么发帖做推广
  • 税务局网站建设情况汇报千锋教育前端学费多少
  • 专业做网站公司 前景舆情监控系统
  • 动态网站开发语言优势风云榜小说排行榜
  • 开发购物平台网站费用网站推广途径和推广要点
  • 如何开设一个网站什么是搜索关键词
  • html 网站地图app拉新平台有哪些