摘要: 正约数集合 试除法 求出 NNN 的正约数集合。 O(N)O(\sqrt N)O(N​)。 int m; int factor[1600]; void q_factor(int n){ for (int i=1;i*i<=n;i++){ m=0; if(n%i==0){ factor[++m]=i; 阅读全文
posted @ 2021-08-15 15:55 luckydrawbox 阅读(7) 评论(0) 推荐(0)
摘要: 质数的判定 暴力判定 O(N)O(\sqrt N)O(N​)。 bool is_prime(ll n){ if(n<2) return 0; ll k=sqrt(n); for(ll i=2;i<=k;i++) if(n%i==0) return 0; return 1; } 随机化 O(klog⁡ 阅读全文
posted @ 2021-08-15 15:33 luckydrawbox 阅读(15) 评论(0) 推荐(0)
摘要: 矩阵结构体 变量 a[N][N]:表示矩阵。其中 NNN 为自定义常数。 h:行数。 l:列数。 函数 clean():把结构体初始化。 build():把结构体改成单位矩阵。若单位矩阵乘以某个 SSS,结果就是 SSS。 K_Recursion(k,*b):构造 kkk 阶常系数线性递推项,bbb 阅读全文
posted @ 2021-08-15 12:45 luckydrawbox 阅读(19) 评论(0) 推荐(0)
摘要: 头文件 此模板涉及的头文件较多,建议用 <bits/stdc++.h> 库。 强制转换 此模板支持两种转换: 整型 ⇒BigInteger\Rightarrow\text{BigInteger}⇒BigInteger:BigInteger(n),其中 nnn 是整型。 字符串型 ⇒BigIntege 阅读全文
posted @ 2021-08-14 23:41 luckydrawbox 阅读(12) 评论(0) 推荐(0)
摘要: 题意 有 nnn 个请求,每次请求一个区间 [si,si+di−1][s_i,s_i+d_i-1][si​,si​+di​−1]: 如果该区间完全没有被占用,占用该区间。 如果该区间有位置已经被占用,占用另一个长度为 sis_isi​,左端点最小的且完全未被占用的区间。 求出每个请求占用的区间。 分 阅读全文
posted @ 2021-08-13 14:18 luckydrawbox 阅读(9) 评论(0) 推荐(0)
摘要: 省赛题 第一题 小模拟。 难度:入门\color{#FE4C61}\text{入门}入门。 #include<bits/stdc++.h> #define ll long long #define ld long double using namespace std; //const int N=; 阅读全文
posted @ 2021-08-07 14:21 luckydrawbox 阅读(16) 评论(0) 推荐(0)
摘要: ab mod ca^b\bmod cabmodc。 把 bbb 分解成二进制数,递推求解。 long long qmi(long long a,long long b,long long c){ long long ans=1; while(b){ if(b&1) ans=ans*a%c; a=a* 阅读全文
posted @ 2021-08-05 22:33 luckydrawbox 阅读(5) 评论(0) 推荐(0)
摘要: 这里提供一个 O(Tlog⁡N)O(T\log N)O(TlogN) 的二分做法。 为了使代价最小,对于第一种抓取方式,我们尽量取较小的数;对于第二种抓取方式,我们尽量取相邻的数。 于是,我们要找到一个数 kkk,使 1∼k−11\sim k-11∼k−1 的数用第一种抓法,k∼nk\sim nk∼ 阅读全文
posted @ 2021-08-05 22:08 luckydrawbox 阅读(92) 评论(0) 推荐(0)
摘要: 题意 给一个无向图,nnn 个点 mmm 条边,给定一个 010101 序列 a1…ana_1…a_na1​…an​,如果 ai=1a_i=1ai​=1,要求走到这个点奇数次,否则,要求走到这个点偶数次,请你任选起点,输出满足要求的序列长度和经过点的序列,序列长度不能超过 4×n4\times n4 阅读全文
posted @ 2021-08-05 18:16 luckydrawbox 阅读(7) 评论(0) 推荐(0)
摘要: long long read(){ long long x=0,f=1;char ch=getchar(); while(!isdigit(ch)){if(ch=='-') f=-1;ch=getchar();} while(isdigit(ch)){x=x*10+ch-48;ch=getchar( 阅读全文
posted @ 2021-08-05 00:07 luckydrawbox 阅读(7) 评论(0) 推荐(0)