- 博客(7)
- 收藏
- 关注
原创 矩阵快速幂(A^k模板)
题目传送门 给定n*n的矩阵A,求A^k 输入格式 第一行,n,k 第2至n+1行,每行n个数,第i+1行第j个数表示矩阵第i行第j列的元素 输出格式 输出A^k 共n行,每行n个数,第i行第j个数表示矩阵第i行第j列的元素,每个元素模10^9+7 输入 2 1 1 1 1 1 输出 1 1 1 1 矩阵相乘原理: 递推式, 例: 矩阵可以这样记:f(n-1)的下一项为f(n);f(n-2...
2019-08-14 19:47:03
2420
原创 堆(模板)
题目传送门 如题,初始小根堆为空,我们需要支持以下3种操作: 操作1: 1 x 表示将x插入到堆中 操作2: 2 输出该小根堆内的最小数 操作3: 3 删除该小根堆内的最小数 输入格式 第一行包含一个整数N,表示操作的个数 接下来N行,每行包含1个或2个正整数,表示三种操作,格式如下: 操作1: 1 x 操作2: 2 操作3: 3 输出格式 包含若干行正整数,每行依次对应一个操作2的结果。 输入输...
2019-08-12 19:37:21
190
原创 欧拉筛(线性筛)和埃氏筛
埃氏筛 inline ll getprime(ll n) { ll k=0; memset(prime,0,sizeof(prime)); memset(vis,0,sizeof(vis)); ll m=sqrt(n+0.5); for(int i=2;i<=m;i++) if(!vis[i]) { prime[k++]=i; ...
2019-08-02 15:59:11
241
原创 并查集(合并、查询)模板
合并和查询操作: 第一行包含两个整数N、M,表示共有N个元素和M个操作。 接下来M行,每行包含三个整数Zi、Xi、Yi 当Zi=1时,将Xi与Yi所在的集合合并 当Zi=2时,输出Xi与Yi是否在同一集合内,是的话输出Y;否则话输出N 输出格式: 如上,对于每一个Zi=2的操作,都有一行输出,每行包含一个大写字母,为Y或者N 输入样例#1: 4 7 2 1 2 1 1 2 2 1 2 1 3 4 ...
2019-05-30 21:21:52
340
原创 分解质因子(模板)
#include<bits/stdc++.h> using namespace std; const int N=100; typedef long long ll; ll a[N],cnt; void solve(ll n){ ll tn=n; cnt=0; for(ll i=2;i*i<=n;i++){ if(n%i==0){ ...
2019-05-26 17:40:39
195
原创 快排算法(模板)
#include #include <bits/stdc++.h> using namespace std; int partition(int a[], int low, int high){ int k = a[low]; while(low < high){ while(low < high && a[high] > k) --h...
2019-05-26 11:31:51
357
原创 树状数组模板(区间和与单点更新和区间最值)
#include <iostream> #include <algorithm> #include <cstdio> #define ll long long int using namespace std; ll c[1000000]; ll lowbit(ll x) { return x&(-x); } void add(ll x,ll...
2019-04-24 17:24:35
407
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人