摘要: 习题部分: #include<bits/stdc++.h> using namespace std; const int N = 1e6 + 10,mod = 1e9 + 7; typedef long long ll; ll n,sq; ll v[N],prime[N],sp1[N],sp2[N] 阅读全文
posted @ 2024-09-11 16:27 MENDAXZ 阅读(4) 评论(0) 推荐(0) 编辑
摘要: 式子形式为: 这个式子中m是盒子数,n是小球数 这个式子中n是盒子数,m是小球数 递推形式为:dp[n][m]=n*(dp[n-1][m-1]+dp[n][m-1]); 阅读全文
posted @ 2024-07-17 16:14 MENDAXZ 阅读(5) 评论(0) 推荐(0) 编辑
摘要: template <typename T> struct fenwick { int n; vector<T> a; inline void init(int _n) {//初始化tree的大小 a.assign(n = _n, 0); } fenwick() {} fenwick(int n) : 阅读全文
posted @ 2024-07-17 15:21 MENDAXZ 阅读(4) 评论(0) 推荐(0) 编辑
摘要: 1.点,线段,极角序 实数(double) 小数部分11位,实数部位53位,相对精度2^(-53) long double 2^(-64) //基础模板 typedef double db; const db EPS =1e-9; //符号函数 inline int sign(db a){retur 阅读全文
posted @ 2024-07-11 20:41 MENDAXZ 阅读(11) 评论(0) 推荐(0) 编辑
摘要: 1.将序列中连续的相同的元素整合,用一个三元组(L,R,val)来表示 2.用set维护 struct node { int l,r;//左右端点 mutable LL v;//这个区间内的值是多少 node(int L,int R=-1,LL V=0):l(L),r(R),v(V){} bool 阅读全文
posted @ 2024-07-09 10:43 MENDAXZ 阅读(7) 评论(0) 推荐(0) 编辑
摘要: 1.const(让意图更加明显) vector<int> vec={1,2,3}; int sum=0; for(const auto& val:vec){ //遍历向量时,实际上并没有改变其值 sum+=val; } //sum=std::accumulate(vec.begin(),vec.en 阅读全文
posted @ 2024-06-29 12:50 MENDAXZ 阅读(7) 评论(0) 推荐(0) 编辑
摘要: 积性函数 1.利用欧拉筛求f(1),……,f(n) 根据特性,可以自己进行推敲 //欧拉筛 void euler{ f[1]=1; for(int i=2;i<=n;i++){ if(!st[i]) p[++tot]=i,f[i]=calc_f(i,1); for(int j=1;j<=tot&&i 阅读全文
posted @ 2024-05-13 12:42 MENDAXZ 阅读(6) 评论(0) 推荐(0) 编辑
摘要: 1 2 3 4 5 总和为:56/2=15; 1 3 6 10 15 总和为:567/3!=35 1 4 10 20 35 总和为:5678/4!=70 所以对于这样的序列的累加和有这样的规律: 1.k(k+1)/2 2.k(k+1)(k+2)/3! 3.k(k+1)(k+2)(k+3)/4! 4. 阅读全文
posted @ 2024-05-03 18:31 MENDAXZ 阅读(13) 评论(0) 推荐(0) 编辑
摘要: 问题:https://codeforces.com/contest/1175/problem/F 关键点:随机化+异或 1.为何要异或:忽略顺序 将1~n随机的一一映射到long long值域内,形成新的映射数组b。再根据异或的特点,只需要判断: b[1]⊕b[2]⊕…………⊕b[n]==b[a[l 阅读全文
posted @ 2024-04-23 08:45 MENDAXZ 阅读(165) 评论(0) 推荐(0) 编辑