1854E
CF1854E Games Bundles 题解
乱搞题 设个 \(dp[i]\) 表示和为 \(i\) 的子序列个数,那么转移是容易的, \(dp[j]+=dp[j-i]\) ,然后就判下 \(dp[60]+dp[60-i]\) 是否大于 \(m\) ,发现这样子搞对于比较大的数可能达不到 \(m\) 的限制,因为这样子转移,默认的是一个数只选一 ......
[CF1854E] Game Bundles
题目描述 Rishi is developing games in the 2D metaverse and wants to offer game bundles to his customers. Each game has an associated enjoyment value. A ga ......
【题解】CF1854E Game Bundles
你考虑我们需要构造出一组解,显然地这样的解有很多很多种(${60^{60}}$ 显然是及其地大)。 那关键是我们如何进行构造。 我们很容易知道每个集合里面 $> 30$ 的数只有一个。 所以我们可以在 $[1,30]$ 中随机 $a_i$,直到满足的组数恰好小于等于 $a_i$,添加的时候维护数组 ......
Codeforces 1854E - Game Bundles
ll k;int ord[35],a[65];mt19937 rng(time(0)); int main(){ scanf("%lld",&k); if(kk){--n;break;} for(int i=60;i>=a[n];i--)dp[i]+=dp[i-a[n]]; }ll rk=k-dp[ ......