1.9k2 分钟

暴力枚举集合划分,然后字符串哈希更新答案 #include <bits/stdc++.h> /* #include<ext/pb_ds/assoc_container.hpp> #include<ext/pb_ds/hash_policy.hpp> */ using namespace std; const double eps = 1e-10; const double pi = 3.1415926535897932384626433832795; const do
2.8k3 分钟

考虑a只有一个和多个这两种本质不同计数方法。 一个的数量为,则有 多个的数量为,则有 而对于每个b,我们可以用NTT算出需要至个a的方案数 于是就得到一个方案,枚举b用NTT计算出a贡献,然后再枚举问询加上相应的贡献到答案上 #include <bits/stdc++.h> /* #include<ext/pb_ds/assoc_container.hpp> #include<ext/pb_ds/hash_policy.hpp> */ using namespace std; const
1.4k1 分钟

回头膜一下jls的 #include <bits/stdc++.h> /* #include<ext/pb_ds/assoc_container.hpp> #include<ext/pb_ds/hash_policy.hpp> */ using namespace std; const double eps = 1e-10; const double pi = 3.1415926535897932384626433832795; const double eln &#
4751 分钟

抄题解好手?mark一下 #include<bits/stdc++.h> #define int long long using namespace std; int d[4000009]; int n,M,T,mod,p; signed main(){ for(scanf("%lld",&T);T;--T){ scanf("%lld%lld",&n,&mod); for(M=1;M<=n;M<<=1)
1.7k2 分钟

老是写挂:) #include<bits/stdc++.h> using namespace std; using ll=long long ; const int maxn=2e5+9; struct Node{ ll l,r,v,tag; }tr[maxn<<2]; ll n,f,a[maxn]; void build(int l,int r,int tot){ if(l==r){ tr[tot].v=a[l];