感谢@Duan2baka 指出一处错误
这道题很多人可能会以为要求的东西是有性质
然而确实有预处理$O($值域$)$预处理 $O(1)$查询的方法
题面康托展开是求排列排名的对于从低到高的第$x$位(0~n-1),贡献为 x!\sum_{i=0}^{x-1}[a_i最后累和就好了树状数组维护#include <bits/stdc++.h>using namespace std;const int mod = 998244353, m ...
题面我一开始是有一个假的10分做法的正解如果$a,p$互质,直接BSGS就好了不互质?搞互质就好了首先如果$b\neq1,\gcd(a,p)\not|b$的话无解显然嘛,你怎么幂都是$\gcd(a,p)$的倍数于是令$g=\gcd(a,p)$,那么$g|b$ \frac ag a^{x-1}\e ...
题面直接三分画个图感受一下,每次把小的那边的端点移过去就好了然后三分实际上不一定要三等分的。。。只要是区间内两个点都可以的就是复杂度、精度问题。。。两个点近一点的话复杂度更优#include <bits/stdc++.h>using namespace std;typedef doubl ...
辛普森法: \int_l^r f(x)dx\approx\frac{(r-l)(f(l)+4f((l+r)/2)+f(r))}6然后自适应??只要判断左右辛普森法合并和当前区间辛普森法误差是否较小就好了#include <bits/stdc++.h>using namespace std ...
题面首先丢出辛普森法公式 \int_l^r f(x)dx\approx\frac{(r-l)(f(l)+4f((l+r)/2)+f(r))}6然后用各种画图软件得出当$a#include <bits/stdc++.h>using namespace std;typedef doubl ...
题面建出AC自动机注意一下,这里不能每次暴跳每次访问到cnt++最后桶排从深到浅更新答案就好了#include<bits/stdc++.h>using namespace std;char m[160][80],t[1000010];int cou[160];struct AC{ ...
题面考虑点值直接多点求值搞出点值然后卷上一个$e^{-x}$就好了好像被卡常了,也有可能是打挂了大佬帮忙康康#include <bits/stdc++.h>using namespace std;const int mod = 998244353, G = 3, Ginv = (9982 ...