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

SP6950 CTOI10D3 - A HUGE TOWER 题解

按照 $ h $ 降序依次放每个积木,此时如果有 \(2\) 块积木,那么一定满足条件。因为 \(h_{\text{now}} - h_{\text{pre}} \leq 0 \leq D\)

继续往下想,再加一块,也要满足 $ h_{\text{next}} - h_{\text{now}} \leq D $。一旦不满足这个条件,后续即使插入更小的积木,也不合法。

每个积木 $ x $ 可以在 $[h_x, h_x + D] $ 的积木中任意选择一个并插入在下方。每次操作基本独立,根据乘法原理,总方案数是每次选法的乘积。

总复杂度 $ O(n \log n) $,瓶颈在于排序。

#include <bits/stdc++.h>
#define int long long
using namespace std;
const int N = 6.2e5 + 5, mod = 1e9 + 9;
int n, D, a[N];
signed main() {ios::sync_with_stdio(false);cin.tie(0);cin >> n >> D;for (int i = 1; i <= n; i++) {cin >> a[i];}a[0] = 1;sort(a + 1, a + 1 + n);for (int i = 2, j = 1; i <= n; i++) {for (; a[i] - a[j] > D; j++);    //用双指针求出每次的选法数量a[0] = a[0] * (i - j + 1) % mod;}cout << a[0];return 0;
}
http://www.gsyq.cn/news/16578.html

相关文章:

  • JVM_XMS 和 java_opts哪种写法对?如何在JVM中设置JVM_XMS和java_opts?
  • 详细介绍:003 flutter初始文件讲解(2)
  • 详细介绍:关于ios点击分享自动复制到粘贴板的问题
  • 新一代数据平台替代传统大数据技术栈
  • 攻击者如何绕过macOS内置安全防护机制
  • AI元人文:走向人机价值共生的文明新范式
  • 实用指南:【机器学习基础】机器学习入门核心算法:层次聚类算法(AGNES算法和 DIANA算法)
  • 动手实验——mybatis generator
  • Moscow International Workshops 2017. Day 4. Lviv NU Contest, GP of Ukraine
  • day18 课程(模块 )
  • 实验作业1-8 陆绎
  • win11开机后卡死,磁盘c盘占用100%,解决方案
  • 跨越国度 解题报告
  • 实用指南:Hardening fixes lead to hard questions
  • 赛前训练6 状压
  • NKOJ全TJ计划——NP11745
  • Windows install RabbitMQ via PowerShell via administrator role
  • 一些做题记录(2025 2-3)
  • 实用指南:Linux 权限管理入门:从基础到实践
  • 无法定时发送
  • MongoDB财报超预期,文档数据库技术解析
  • 2020CSPS T1 儒略日题解
  • Python 语言编程技巧
  • kafka 常用知识点 - 指南
  • 英语_阅读_ChatGPT_待读
  • 详细介绍:Qwen2.5-VL 损失函数
  • visual studio
  • HttpServletResponse 对象用来做什么? - 详解
  • [LUCKY」在Windows下使用STUN穿透实现Minecraft联机并设置SRV记录
  • 详细介绍:如何用 pnpm patch 给 element-plus 打补丁修复线上 bug(以 2.4.4 修复 PR#15197 为例)