模板
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 · 175 阅读 · 0 评论 -
练习37,最小生成树MST【Kruskal算法】
代码】练习37,最小生成树MST【Kruskal算法】原创 2022-07-21 13:02:28 · 137 阅读 · 0 评论 -
求逆元【c++】
适用于单个查找和大数快速幂求逆元利用费马小定理:若p为素数,a为正整数,且a、p互质,则有 ≡(mod p)所以此方法只适用于a、p互质的情况递推求逆元用于求一连串数字对于一个mod p的逆元...原创 2022-06-05 19:46:56 · 1190 阅读 · 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 · 106 阅读 · 0 评论 -
练习27, 字典树 于是他错误的点名开始了【字典树/map】
P2580 于是他错误的点名开始了 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)字典树写法:#include<bits/stdc++.h>using namespace std;#define INF 0x3f3f3f3f#define lint long longint n,m;struct Trie{ int ch[500010][26],cnt,val[500010]; //val为附加信息 //ch数组,第二维的大小为26是因原创 2022-05-08 23:58:50 · 182 阅读 · 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 · 471 阅读 · 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 · 249 阅读 · 0 评论 -
高精度运算 加减乘除 【C++】
一、高精度加法#include#include#includeint 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 · 1061 阅读 · 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 · 1458 阅读 · 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 · 1714 阅读 · 0 评论