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

AT_abc200_e [ABC200E] Patisserie ABC 2 题解

(麦口乐在跑步的时候随手就把这道题切了,吓哭了%%%)

直接按题意排序显然会因为蛋糕数量爆多而gg,注意到蛋糕排序的第一关键字是三个维度的总和,而这个总和的范围是相对小的,考虑对每个总和分别计算蛋糕的方案数量。

假设 \(i+j+k=s\),我们可以简单使用插板法 \(\large \binom{s-1}{2}\)\(s\) 分成三个数,但 \(i,j,k \leq n\) 的限制没有被满足。

考虑容斥,强制一个、两个、三个维度的条件不被满足,再做插板,设总和为 \(s\) 的蛋糕数量为 \(f[s]\)

\[f[s]=\binom{s-1}{2}-3\times \binom{s-n-1}{2}+3\times \binom{s-2n-1}{2}-3\times \binom{s-3n-1}{2} \]

依次枚举维度总和,用其蛋糕数量和 \(x\) 比较,这样就能找出第 \(x\) 个蛋糕的维度和是多少,再进一步去确定 \(i,j,k\) 分别是多少即可,我们可以枚举 \(i\),此时 \(j\) 的取值处在 \([\max(1,s-i-n),\min(n,ans-i-1)]\) 的区间里,原因可以考虑 \(k\) 取到最大和最小的情况。有了 \(j\) 的区间其实也就是知道了此时蛋糕的数量,再和 \(x\) 进行比较,最终确定位置即可。

点击查看代码
const int N=1e6+5;
int f[N*3];
int n,k,ans_sum,ansi,ansj,ansk;
int c(int x){if(x<=2) return 0;return (x-1)*(x-2)/2;
}
void xpigeon(){rd(n,k);for(int i=3;i<=3*n;i++){f[i]=c(i)-3*c(i-n)+3*c(i-2*n)-3*c(i-3*n);}for(int i=3;i<=3*n;i++){if(k>f[i]) k-=f[i];else{ans_sum=i;break;}}for(int i=1;i<=ans_sum-2;i++){int l=max(1ll,ans_sum-i-n),r=min(n,ans_sum-i-1);if(l>r) continue;if(k>r-l+1){k-=r-l+1;}else{ansi=i;ansj=l+k-1;ansk=ans_sum-ansi-ansj;break;}}cout<<ansi<<" "<<ansj<<" "<<ansk<<'\n';
}
signed main() {ios::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL);xpigeon();return 0;
}
http://www.gsyq.cn/news/9824.html

相关文章:

  • 日总结 5
  • Linux驱动开发(1)概念、环境与代码框架 - 实践
  • 寻路算法
  • day 1
  • 学习问题日记-1
  • 记一次生产环境内存溢出记录
  • LeetCode:15.转轮数组 - 详解
  • Android 中获取稳定时间的方法 - 指南
  • 【精品资料鉴赏】RPA财务机器人应用(基于UiPath)教材配套课件 - 详解
  • CF2146 Codeforces Round 1052 (Div. 2) 游记
  • 如何安装 SQLPro Studio for Mac?v2024.21.dmg 文件安装步骤详解(附安装包)
  • 易路斩获招聘、薪酬两大重磅人力资源奖项,尽显行业领军风范!
  • Xilnx FPGA 资源结构
  • 2025年录音转文字技术解析与实用工具评测 - 指南
  • CF2147H Maxflow GCD Coloring 题解
  • Uiverse.io 2.0 震撼发布:新增 3000+ 动效组件!适配 React、Vue
  • 问题及解决方法
  • 2025.9.22
  • 联想拯救者无法登录当前账户
  • WPF二合一平板电脑上屏幕旋转时获取屏幕宽高问题
  • 代码中的善意:构建人性化的软件开发文化
  • 9/22
  • Python开发中都遇到哪些问题,怎么解决的
  • 【废话】
  • 从 0 到 1,AI 走进服装店:记住每位顾客的喜好,比你还靠谱
  • 君子如水,心中有火:vivo本心而为30周年
  • Flutter跨平台工程实践与原理透视:从渲染引擎到高质产物 - 指南
  • 第二次软工作业——个人项目 - LXJ
  • systemd服务自身重启策略管理
  • java log4j 代码中 新增按日保存日志文件的功能