首页 > 其他分享 >[ABC221H] Count Multiset

[ABC221H] Count Multiset

时间:2024-11-14 22:19:10浏览次数:1  
标签:Count dots le sum ABC221H Multiset

给定 \(n, m\)。对于每个 \(k = 1,2,\dots,n\),求解有多少大小为 \(k\) 的正整数可重集的元素和为 \(k\),且每个元素的出现次数都 \(\le m\)。

\(m \le n \le 5000\)。

可重集转化成单调不降的序列 \(a\)。在通过差分转化成任意非负整数序列 \(b\)(需要保证 \(b_1 > 0\))。

可重集中所有元素的出现次数都 \(\le m\),等价于 \(a\) 中极长连续段的长度 \(\le m\),等价于 \(b\) 中不存在连续 \(m-1\) 个 \(0\)。

考虑如何通过 \(b\) 反推 \(\sum a_i\)。不难发现每个 \(b_i\) 都被贡献了 \(n - i + 1\) 次。于是:

\[\sum a_i = \sum b_i \times (n-i+1) \]

考虑对 \(b\) DP。设 \(f(i, j)\) 表示考虑 \(b_1 \dots b_i\) 且目前 \(b\) 中的和为 \(j\) 的方案数。转移枚举 \(b_i\) 以及 \(1 \sim i-1\) 中最后一个 \(0\) 的位置。前者调和级数,后者可以前缀和优化。总复杂度 \(\mathcal O(n^2 \log n)\)。

标签:Count,dots,le,sum,ABC221H,Multiset
From: https://www.cnblogs.com/2huk/p/18546968

相关文章

  • HDU 6964 I love counting
    看到\(\oplus\),肯定想到trie。当我们一位可以是\(1\)但是变成\(0\)时,一个子树内的都合法。特殊的,最后走到的叶子也合法。想法负一:我会莫队!时间复杂度\(\mathcal{O}(n\sqrt{n}\logn)\),待更新。想法零:我会树套树!待更新。想法一:我会HH的项链!我们按照\(r\)离线,每一次查......
  • set 、multiset、unordered_set 和 map 、multimap、unordered_map
    序列式容器:比如:vector、list、deque、forward_list(C++11)等因为其底层为线性序列的数据结构,里面存储的是元素本身。关联式容器:比如(树形结构的关联式容器):map、set、multimap、multiset等也是用来存储数据的,与序列式容器不同的是,其里面存储的是<key,value>结构的键值对,......
  • [AGC005D] ~K Perm Counting
    题意求对于所有的\(i\)满足\(|P_i-i|\neqk\),的排列数量,对\(924844033\)取模。\(2\len\le2\times10^3,1\lek\len-1\)。Sol考虑转成\(n\timesn\)的网格图,那么就是所有\((i,i+k)\)以及\((i,i-k)\)的格子涂黑不能用。题意转化为在网格图里......
  • [CKS] K8S ServiceAccount Set Up
    最近准备花一周的时间准备CKS考试,在准备考试中发现有一个题目关于Rolebinding的题目。Question1ThebuffyPodinthesunnydalenamespacehasabuffy-saServiceAccountwithpermissionsthePoddoesn’tneed.ModifytheattachedRolesothatitonlyhasthea......
  • MySQL 8.0 执行 COUNT () 很慢原因分析
    MySQL8.0执行COUNT()很慢原因分析1.1问题描述线上MySQL8.0.32环境在执行SELECTCOUNT(1)FROMt0获取表行数很慢,同样场景下该SQL在MySQL5.7环境很快就能拿到结果1.2问题复现测试版本:8.0.25MySQLCommunityServer-GPL和5.7.21-logMySQLCommunityServe......
  • 一文彻底弄懂JUC工具包的CountDownLatch的设计理念与底层原理
    CountDownLatch是Java并发包(java.util.concurrent)中的一个同步辅助类,它允许一个或多个线程等待一组操作完成。一、设计理念CountDownLatch是基于AQS(AbstractQueuedSynchronizer)实现的。其核心思想是维护一个倒计数,每次倒计数减少到零时,等待的线程才会继续执行。它的主要设......
  • 87_api_intro_location_metacountry
    国家地区基础信息数据API数据接口多维度国家基础信息,最新基础信息,支持多维度筛选。1.产品功能包含全球250多个国家和地区的国旗emoji;支持国家名称、国家编码、国家电话区号、所属大洲、首都、货币代码、语言代码等多种查询条件;返回结果包含国家名称、国家编码、国家......
  • ThingsBoard规则链节点:Message Count 节点详解
    引言1.MessageCount节点简介2.节点配置2.1基本配置示例3.使用场景3.1监控设备活跃度3.2检测异常情况3.3生成统计报告4.实际项目中的应用4.1项目背景4.2项目需求4.3实现步骤5.总结 ......
  • 循环程序设计(3)——break,countine,goto和exit语句
    一、break语句  break语句是用于结束当前一层循环的语句,其效果如下:while(表达式1) ··· if(表达式2) break; ···}循环后的第一条语句;或do ··· if(表达式2) break; ···}while(表达式1);循环后的第一条语句;或for(;......
  • 数组排序简介-计数排序(Counting Sort)
    基本思想        通过统计数组中每个元素在数组中出现的次数,根据这些统计信息将数组元素有序的放置到正确位置,从而达到排序的目的。算法步骤计算排序范围:遍历数组,找出待排序序列中最大值元素 nums_max和最小值元素 nums_min,计算出排序范围为 nums_max−nums_min......