模板
ILECY
You got to put the past behind you before you can move on.
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
练习38,最小生成树MST【Prim算法+堆优化】
练习38,最小生成树MST【Prim算法+堆优化】原创 2022-07-21 13:10:08 · 285 阅读 · 0 评论 -
练习37,最小生成树MST【Kruskal算法】
代码】练习37,最小生成树MST【Kruskal算法】原创 2022-07-21 13:02:28 · 205 阅读 · 0 评论 -
求逆元【c++】
适用于单个查找和大数 快速幂求逆元 利用费马小定理:若p为素数,a为正整数,且a、p互质,则有 ≡(mod p)所以此方法只适用于a、p互质的情况 递推求逆元 用于求一连串数字对于一个mod p的逆元...原创 2022-06-05 19:46:56 · 1378 阅读 · 0 评论 -
练习34,求最长回文子串【manacher算法】
P3805 【模板】manacher 算法 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)题目很简单:给出一个只由小写英文字符 a~z 组成的字符串 S ,求 S 中最长回文串的长度 。字符串长度为 n(1≤n≤1.1e7)不过考虑到n很大,所以靠暴力求肯定超时,所以要用到马拉车算法(manacher算法) 如图,mid是i~r的回文中心,因此以t为回文中心的字符串=以t的对称点为回文中心的字符串,所以p[t]可以等于p[2*mid-t]。但是由于超过r的部分(即右红边部分)不能保证等于左原创 2022-06-01 16:23:01 · 184 阅读 · 0 评论 -
练习27, 字典树 于是他错误的点名开始了【字典树/map】
P2580 于是他错误的点名开始了 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)字典树写法: #include<bits/stdc++.h> using namespace std; #define INF 0x3f3f3f3f #define lint long long int n,m; struct Trie{ int ch[500010][26],cnt,val[500010]; //val为附加信息 //ch数组,第二维的大小为26是因原创 2022-05-08 23:58:50 · 250 阅读 · 0 评论 -
练习16,并查集模板&NOI2001食物链【并查集】
并查集一般模板: void init(){ //初始化 for(int i=1;i<=n;i++) fa[i]=i; } int find(int x){ //寻找根节点 if(fa[x]!=x) fa[x]=find(fa[x]); return fa[x]; } 并查集模板题:P3367 【模板】并查集 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) #include<bits/stdc++.h> using namespace st原创 2022-03-13 20:57:26 · 547 阅读 · 0 评论 -
埃氏筛和欧拉筛(线性筛)
埃氏筛 bool b[2000010]; long long n; cin >> n; b[1]=1; for(int i=2;i*i<=n;i++) if(b[i]==0) for(int j=i*i;j<=n;j+=i) b[j]=1; 欧拉筛(线性筛) long long n,prime[5800001],ans; bool b[100000010]; cin >> n; for(int i=2; i<=n; ++i){ if(原创 2022-03-31 20:03:07 · 342 阅读 · 0 评论 -
高精度运算 加减乘除 【C++】
一、高精度加法 #include #include #include int a[1010],b[1010],c[1010]; char s[1010]; int main(){ int i,j,k,m,n; int alen,blen,clen; gets(s); alen=strlen(s); for(i=alen-1;i>=0;i--)原创 2016-02-04 14:50:59 · 1185 阅读 · 0 评论 -
二分法模板【C++】
向左寻找目标 while(l<r){ //向左寻找目标 int mid=(l+r)/2; if(check(mid)) r=mid; else l=mid+1; } 向右寻找目标 while(l<r){ //向右寻找目标 int mid=(l+r+1)/2; if(check(mid)) l=mid; else r=mid-1; } 浮点二分 while(r-l>1e-5){ //确保精度,题目要求保留小数点位数+2原创 2022-03-31 19:09:30 · 1616 阅读 · 0 评论 -
动态规划 01背包与完全背包问题【C++】
01背包问题 递归做法 #include<bits/stdc++.h> using namespace std; int N,V; int v[1010],w[1010],d[1010][1010]; int dp(int i,int j){ if(d[i][j]) return d[i][j]; if(i>N) return 0; if(j-v[i]>=0) d[i][j]=max(dp(i+1,j-v[i])+w[i],dp(i+1,j)); ..原创 2022-03-27 20:08:38 · 1818 阅读 · 0 评论
分享