info: { blogIcon: 'https://cdn.luogu.com.cn/upload/usericon/765493.png', blogUser: 'OIerBoy', blogAvatar: 'https://cdn.luogu.com.cn/upload/usericon/765493.png', blogStartDate: '2023-04-22', webpageTitleOnblur: '(o?v?)ノ Hi', webpageTitleOnblurTimeOut: 1000, webpageTitleFocus: '(*′?`*) 欢迎回来!', webpageTitleFocusTimeOut: 1000, webpageIcon: "https://cdn.jsdelivr.net/gh/BNDong/Cnblogs-Theme-SimpleMemory@master/img/webp/blog_logo.webp", { enable: true, // 是否开启日/夜间模式切换按钮 auto: { // 自动切换相关配置 enable: false, // 开启自动切换 dayHour: 5, // 日间模式开始时间,整数型,24小时制 nightHour: 19 // 夜间模式开始时间,整数型,24小时制 } } },

Emotional Fishermen

2023-09-18

题目

Emotional Fishermen

难度&重要性(1~10):8

题目来源

luogu

题目算法

dp,组合数学

解题思路

这道题第一眼就是啥也不管,先排序。然后考虑如何 dp。
先讲一讲我第一眼的 \(O(n^3)\) 思路吧:
首先,我将状态设计 \(f_{i,j}\) 其中 \(i\) 表示枚举到第 \(i\) 个位置,\(j\) 表示排完序后最大值为 \(j\) 的方案数。
转移我就不细讲了,然后我发现我的状态设计的简直像一个小可爱一样。
因为我们是已经将数组排序的,那么我们当前既然枚举到了第 \(i\) 个位置,最大值就可以直接定为是 \(a_i\) 的。
然后我们只需要预处理一下小于等于 \(\dfrac{1}{2}a_i\) 的个数记为 \(x_i\)
这样我们就可以轻松得到转移方程式:

\[f_i=\sum\limits_{j=0}^{x_i}f_j\times A_{n-x_j-2}^{x_i-x_j-1} \]

然后这道题就做完了,时间复杂度 \(O{n^2}\)

完成状态

已完成

posted @ 2023-09-18 22:13  OIerBoy  阅读(15)  评论(0)    收藏  举报