首页 > 其他分享 >Solution - Codeforces 1957E Carousel of Combinations

Solution - Codeforces 1957E Carousel of Combinations

时间:2024-11-17 20:08:53浏览次数:1  
标签:lfloor 1957E frac bmod Solution rfloor times Combinations binom

首先这个 \(C(i, j)\bmod j\) 的形式就非常怪,于是首先肯定要先研究一下这个值。

先考虑如何求 \(C(i, j)\)。
可以考虑先选出要用的 \(j\) 个数,再乘上其排列成环的方案数,那么有 \(C(i, j) = \binom{i}{j}\times (j - 1)!\)。

那么就是来考虑 \(\binom{i}{j}\times (j - 1) ! \bmod j\) 的值了。
注意到后面的这个 \((j - 1)! \bmod j\) 是个定值,于是考虑分析这个值。

首先若 \(j\in \mathbb{P}\),根据威尔逊定理那么有 \((j - 1)!\bmod j = j - 1\)。
否则若 \(j = 1\),显然为 \(0\)。
接下来就考虑 \(j\) 为合数的情况了,感受一下会觉得其实这些值大部分都为 \(0\)。
考虑令 \(j = x\times p^k\),那么 \((j - 1)!\bmod j \not = 0\) 就肯定要使得 \(k\ge x\times p^{k - 1}\not = 1\)(\(= 1\) 就为质数了)。
那么就能发现只可能在取 \(x = 1, p = 2, k = 2\) 时有解,即 \(j = 4\) 时。

那么对于 \(j = 4\),显然是最特殊的,但是考虑到也只有这一种 \(j\),所以直接考虑直接预处理 \(\binom{i}{4}\times 6 \bmod 4\) 然后前缀和。

那么就只需要考虑 \(j\in \mathbb{P}\) 的情况了。
那么此时化简一下就有 \(\binom{i}{j}\times (j - 1)! \bmod j = \binom{i}{j}\times (j - 1)\bmod j = (j\binom{i}{j} - \binom{i}{j})\bmod j = (j - \binom{i}{j}\mod j)\mod j\)。
于是问题来到如何求 \(\binom{i}{j}\bmod j\)。
注意到此时 \(j\in \mathbb{P}\),那么就可以用 Lucas 定理了。
此时 \(\binom{i}{j}\bmod j = \binom{\lfloor\frac{i}{j}\rfloor}{\lfloor\frac{j}{j}\rfloor}\binom{i\bmod j}{j\bmod j} = \binom{\lfloor\frac{i}{j}\rfloor}{1}\binom{i\bmod j}{0} = \lfloor\frac{i}{j}\rfloor\times 1 = \lfloor\frac{i}{j}\rfloor\)。
于是 \(C(i, j) = (j - \lfloor\frac{i}{j}\rfloor)\bmod j\)。

注意到 \(x\in [kj, (k + 1)j)\) 都有 \(C(x, j) = (j - k\bmod j)\bmod j\),这说明实际上可以把这些 \(k\) 相同的 \(x\) 用差分来处理,就只需要对于每个 \(k\) 处理一次了。
那么这个 \(k\) 的上限就是 \(\lceil\frac{n}{j}\rceil\)。
那么复杂度就是与埃氏筛相同的 \(\mathcal{O}(n\log \log n)\)。

最后总时间复杂度 \(\mathcal{O}(n\log \log n + t)\)。

#include<bits/stdc++.h>
constexpr int mod = 1e9 + 7;
constexpr int maxn = 1e6 + 10, N = 1e6;
int a[maxn], vis[maxn];
inline void init() {
   for (int i = 2; i <= N; i++) {
      if (vis[i]) continue;
      for (int j = 0, k = 0; j <= N; j += i, k = (i + k - 1) % i) {
         vis[j] = 1;
         (a[j] += k) %= mod, (a[std::min(N + 1, j + i)] += mod - k) %= mod;
      }
   }
   for (int i = 1; i <= N; i++) {
      (a[i] += a[i - 1]) %= mod;
   }
   for (int i = 1; i <= N; i++) {
      (a[i] += ((__int128_t)i * (i - 1) * (i - 2) * (i - 3) / 4) % 4) %= mod;
   }
   for (int i = 1; i <= N; i++) {
      (a[i] += a[i - 1]) %= mod;
   }
}
inline void solve() {
   int n;
   scanf("%d", &n);
   printf("%d\n", a[n]);
}
int main() {
   init();
   for (int T, _ = scanf("%d", &T); T--; ) {
      solve();
   }
   return 0;
}

标签:lfloor,1957E,frac,bmod,Solution,rfloor,times,Combinations,binom
From: https://www.cnblogs.com/rizynvu/p/18550983

相关文章

  • Solution - Codeforces 2031F Penchick and Even Medians
    飞快秒掉了,没报名痛失首杀,痛苦。简略题解:考虑先随机二元下标\((x_0,y_0)\)满足删去\((x_0,y_0)\)后查询的中位数还是\(\frac{n}{2},\frac{n}{2}+1\),那么这就说明\(p_{x_0},p_{y_0}\)一定在中位数的两边。那么还剩下的\(n-2\)个下标两两配对成\(\frac{n-2}{......
  • Solution - Codeforces 1725K Kingdom of Criticism
    首先考虑转化一下操作\(3\)。令\(m=\lfloor\frac{l+r}{2}\rfloor\),操作\(3\)就相当于是在\([l,m]\)内的数变为\(l-1\),在\((m,r]\)内的数变为\(r+1\)。于是现在对于操作\(3\)其实就是将一个区间内的数都转为同一个值。其实对于这类将大量信息整合为一体的......
  • 运输货物(Solution)
    运输货物题目描述:小\(Z\)要用\(n+1\)只骡子运送\(k\)种物资。每只骡子可以任选物资运输(也可以运输\(0\)种物资)。但是\(0\simn-1\)这\(n\)只骡子不能运输同一种物资。即不能存在一种物资同时被\(0\simn-1\)的骡子运输。并且设\(1\simn\)这\(n\)只骡子......
  • Solution - Codeforces 1681E Labyrinth Adventures
    能够发现这个最短路的形态一定是从低层一层一层走到高层的。那么这就说明若起点终点对应层数为\(x,y\)。若\(x=y\)则直接算,就是曼哈顿距离。否则不妨钦定\(x<y\)(不满足就交换,不影响结果),那么层数\(z\in[x,y)\)的其中一个门肯定都会被经过。于是考虑把\(\operator......
  • Solution - Codeforces 1190C Tokitsukaze and Duel
    考虑到两人对应的操作是相同的,于是可以从对称的角度来思考。考虑到在先手做出操作后,后手一个较为特殊的操作是不做任何影响,也就是重复先手的操作。能够发现如果对于后手这不能必胜,那么他一定不会去产生影响,并又把这个局面留给先手,相当于是先后手的交换。对于先手又是同样的,因为......
  • Solution - Codeforces 1394B Boboniu Walks on Graph
    考虑先分析最后的图会长成什么样。因为每个点都只会连出一条有向边,且最后还能走回自己。所以可以知道的是图会有许多个环来组成,且每个环都无交。但是这个判定条件明显不是很优秀,考虑继续转化。考虑到对于一个有向环,每个点的出度和入度都需要为\(1\)。那么出度为\(1\)题目......
  • Solution - Codeforces 1217E Sum Queries?
    对于这个“好的”的判定条件看起来有点奇怪,不妨结合上题目要求的“最小\(sum\)”一起考虑。因为要最小化\(s_p\),所以一个比较直观的想法是先从选的数个数入手。考虑到如果选的只有\(1\)个数\(a_i\),那么\(sum=a_i\),一定是好的,排除。如果选的是\(2\)个数\(a_i,a_j\),......
  • LLaVA-UHD: an LMM Perceiving Any Aspect Ratio and High-Resolution Images
    传统的大多模态模型(LargeMultimodalModel,LMM)关注于固定的尺寸和有限的分辨率。本文以GPT-4V和LLaVa-1.5为代表,揭示了视觉编码策略的根本性系统缺陷。本文指出大多模态模型可以有效地感知任何长宽比和高分辨率的图像。概述为了实现LMM模型在多种长宽比和高分辨率的图像感......
  • Solution - P9090 「SvR-2」G64
    小爆个标,给出一个\(\mathcal{O}(n+q+\sqrt{x}+\log\operatorname{mod})\)的做法。可能写的有点意识流了,可以结合代码理解或者私信我吧qaq。首先对于最大独立集有DP:设\(f'_{i,0/1}\)表示考虑\(i\)的子树,\(i\)选没选的最大独立集点数。转移就是\(f'_{i,0}......
  • [论文阅读] High-Resolution Image Synthesis with Latent Diffusion Models
    写在前面原文:https://arxiv.org/abs/2112.10752Github:https://github.com/CompVis/latent-diffusion?tab=readme-ov-file参考:https://stable-diffusion-art.com/how-stable-diffusion-work/关键词:stablediffusion,LDMs阅读理由:对DM高消耗的优化,解决速度问题。看一下优化思路,......