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

题解:AT_abc200_e [ABC200E] Patisserie ABC 2

目前暂无修正。

前言:终于轮到我复杂问题简单化啦哈哈哈。

为什么题解区一车容斥啊?复杂难推导且根本没必要。这里给出一个桶 + 前缀和的做法。与这篇题解类似,但是由于其并没有详细地写出过程,写得也较为简略,所以这里来补充并完善一下这个做法的本质。

形式化题意\(n^3\) 个三元组 \((x,y,z)\) 按照 \(x+y+z\) 为第一关键字,\(x\) 为第二关键字,\(y\) 为第三关键字排序并求第 \(k\) 个。

看到求第 \(k\) 排名,我们容易想到按照关键字依次确定。

先确定 \(x+y+z=A\),按照 \(A\) 升序扫一遍,扫到差不多 \(k\) 的位置停止并记录 \(A\),通过前缀和实时计算有多少个有序三元组 \((x,y,z)\) 满足 \(x+y+z\le A\) 的。再根据 \(A\) 从小到大扫一遍 \(x\),并根据前缀和实时计算有多少个有序二元组 \((y,z)\) 满足 \(A-(y+z)\le x\) 的,最后 \(\Theta(n)\) 确定 \(y\) 即可。

我们需要先求出那么要求的东西就变成了:

  1. 满足 \(x+y+z=A\) 的有序三元组 \((x,y,z)\) 的数量。
  2. 满足 \(y+z=B\) 的有序二元组 \((y,z)\) 的数量。

\(buk_2[B]\) 表示第二条的答案,显然随便列个不等式分讨一下就可以 \(\Theta(n)\) 计算,再详细一点就是 \(y+z=B,y\in[1,n],z\in[1,n]\),读者可自行思考。

主要难点在于 \(buk_3[A]\) 如何求解。枚举多出来的一个数 \(x\),有转移:\(buk_3[A]=\sum_{x\in[1,n]}buk_2[A-x]\),然后由于 \(x\in[1,n]\),这个东西实际上是 \(buk_2\) 的一段连续区间,直接前缀和计算即可。总时间复杂度 \(\Theta(n)\)

感觉代码可读性挺高的。

#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
const int N=3e6+5;
LL n,k,sum,A,B,tot,x,y,z;
LL buk2[N],buk3[N];
int main(){scanf("%lld%lld",&n,&k);for(int i=2;i<=2*n;i++){if(i>n)buk2[i]=(n-(i-n)+1);else buk2[i]=i-1;}LL pre=0;for(int i=3;i<=3*n;i++){if(i>=(n+1))pre-=buk2[i-(n+1)];pre+=buk2[i-1];buk3[i]=pre;}for(sum=3;sum<=3*n;sum++){tot+=buk3[sum];if(tot>=k){tot-=buk3[sum];break;}}for(x=1;x<=n;x++){tot+=buk2[sum-x];if(tot>=k){tot-=buk2[sum-x];break;}}for(y=1;y<=n;y++){if(sum-x-y>n)continue;tot++;if(tot==k)break;}z=sum-x-y;printf("%lld %lld %lld",x,y,z);return 0;
}
http://www.gsyq.cn/news/32877.html

相关文章:

  • CF1996G Penacony
  • 远程命令执行漏洞、SSRF、XXE、tomcat弱口令漏洞
  • Ollama API 交互
  • 项目冷场?用禅道协作白板激活团队的创新思维!
  • 2025年桥洞力学板市场趋势与选购指南:江苏同芯木业江苏行业领先
  • 吴恩达深度学习课程二: 改善深层神经网络 第一周:深度学习的实践(一)
  • Ollama 运行模型
  • 2025 年矿井轴流通风机,矿井抽出式轴流对旋通风机,矿井压入式对旋轴流通风机,FKD 系列矿井压入式对旋轴流通风机厂家最新推荐,实力品牌深度解析采购无忧之选
  • 2025 年矿用隔爆型压入式轴流通风机,FKZ 系列矿井轴流通风机,FKCDZ 系列矿井抽出式轴流对旋通风机厂家最新推荐,聚焦资质、案例、售后的五家机构深度解读
  • 第一次编程作业完结撒花!!!
  • 2025年沈阳/北京/东三省制造业企业商业秘密保护权威推荐榜单:高新技术企业与上市公司数据安全解决方案精选
  • 2025沈阳/北京/东三省制造业企业商业秘密保护厂家推荐大宸商业,专业合规护航企业发展
  • LangGraph MCP - 使用LangGraph构建多智能体工作流(六)
  • 告别卡顿与等待,Rancher Vai 让集群操作“秒响应”
  • 2025 年铝型材框架、铝型材围栏、6063 铝型材、重型铝型材厂家最新推荐 —— 产能、专利、环保三维数据透视
  • 2025 年碳化硅金刚线切割机,石墨金刚线切割机,陶瓷金刚线切割机厂家最新推荐,产能、专利、适配性三维数据透视
  • 2025 年 10 月油石、保温材料、玉石、石英金刚线切割机厂家最新推荐,产能、专利、环保三维数据透视
  • 2025 年 10 月瓦楞纸、蜂窝铝、硬质合金金刚线切割机厂家最新推荐,实力品牌深度解析采购无忧之选!
  • 共产主义没能解决”霸凌“的状况
  • 测试计划与方案怎么写?这份让开发和PM都信服的模板请收好!
  • 5 MHz 到 10 GHz 一只搞定:H3-MABA-011118 国产替代实测笔记
  • Perplexity AI研究助手10个提示词
  • Linux 下使用 tar 与 pigz 进行多核压缩
  • 2025年pvc线槽厂家权威推荐榜单:线槽盖板/不锈钢线槽/塑料线槽板源头厂家精选
  • 2025年无锡排水管道非开挖修复公司权威推荐榜单:污水管道维修改造/商场污水管道修复/排水管道修复源头公司精选
  • Jenkins 集成jmeter、rf
  • 2025年10月黄褐斑改善产品推荐榜:五款热门产品深度对比分析
  • 纯前端实现结构描述生成Word文件
  • 2025年10月淡化痘印产品推荐榜:五款精选产品深度对比分析
  • LangGraph MCP - 初识(一)