![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
看身后
这个作者很懒,什么都没留下…
展开
-
数论合集
扩展欧几里德ll exgcd(ll a,ll b,ll &x,ll &y){ if(b==0){ x=1; y=0; return a; } else{ ll r=exgcd(b,a%b,x,y); ll t; t=x; x=y; ...原创 2020-08-07 09:00:18 · 159 阅读 · 0 评论 -
序列自动机+dp求公共最长子序列
例题+题解序列自动机int nxt[N][50];//a[i...n]中字母j的最近位置int dp[50][50];//b中前i个字母匹配了j个,dp[i][j]表示最后一个匹配的字母在a中的位置char a[N],b[N];void get_nxt() //序列自动机{ int lena=strlen(a+1); for(int i=0; i<26; i++) nxt[lena][i]=lena+1; nxt[lena][a[lena]-'a']原创 2020-07-24 20:23:33 · 222 阅读 · 0 评论 -
超级卡特兰数(又称大施罗德数)
题目链接:https://www.nowcoder.com/acm/contest/146/B把前四项丢进OEIS,就能知道是施罗德数参照百科:https://baike.baidu.com/item/%E6%96%BD%E7%BD%97%E5%BE%B7%E6%95%B0/16536292代码如下:#include<cmath>#include<iostream&...转载 2020-04-26 23:52:06 · 330 阅读 · 0 评论 -
树状数组+差分+例题
话不多说,先上两张图这是正常二叉树的图这是我们要学习的树状数组;下面用A[i]代替黑色数组(原来的数组),红色结构代表我们的树状数组(下面用C[i]代替),发现没有,每个位置只有一个方框,令每个位置存的就是子节点的值的和,则有C[1] = A[1];C[2] = A[1] + A[2];C[3] = A[3];C[4] = A[1] + A[2] + A[3] + A[4];C[...原创 2020-04-22 16:03:13 · 217 阅读 · 0 评论 -
求合数
#include<stdio.h>#include<iostream>#include<algorithm>#include<cstring>#include<string>#include<cmath>#include<set>#include<queue>#include<ve...原创 2020-02-08 18:37:38 · 757 阅读 · 0 评论 -
通过(先序)中序遍历和后序遍历建二叉树
通过中序遍历和后序遍历建二叉树#include<stdio.h>#include<iostream>#include<algorithm>#include<cstring>#include<string>#include<set>#include<queue>#include<vector&g...原创 2020-02-06 17:16:34 · 134 阅读 · 0 评论 -
PTA乙级 1073 多选题常见计分法 (20 分) 位的运用
1073 多选题常见计分法 (20 分)批改多选题是比较麻烦的事情,有很多不同的计分方法。有一种最常见的计分方法是:如果考生选择了部分正确选项,并且没有选择任何错误选项,则得到 50% 分数;如果考生选择了任何一个错误的选项,则不能得分。本题就请你写个程序帮助老师批改多选题,并且指出哪道题的哪个选项错的人最多。输入格式:输入在第一行给出两个正整数 N(≤1000)和 M(≤100),分别是学...原创 2019-12-02 17:01:44 · 149 阅读 · 0 评论 -
最小堆
#include<stdio.h>#include<stdlib.h>typedef struct HNode * Heap;struct HNode{ int * Data; int Size; int Capacity;};typedef Heap MinHeap;//最小堆的创建#define MINDATA -1MinHe...原创 2019-11-26 19:10:53 · 195 阅读 · 0 评论 -
atof()将字符串转换为浮点数isdigit( )判断是不是0-9
https://baike.baidu.com/item/atof/10931318?fr=aladdin原创 2019-11-23 18:29:27 · 305 阅读 · 0 评论 -
洛谷 P1762 偶数(杨辉三角性质)
P1762 偶数题目描述给定一个正整数n,请输出杨辉三角形前n行的偶数个数对1000003取模后的结果。输入格式一个数输出格式结果输入输出样例输入 #1 复制6输出 #1 复制6说明/提示对于30%的数据,n<=4000对于70%的数据,n<=4*10^9对于100%的数据,n<=10^15杨辉三角形的前七行:11 11 2 11 3 ...原创 2019-11-03 19:23:44 · 460 阅读 · 0 评论 -
逆元的求法总结(3种基本方法+4种实现)
原创 逆元的求法总结(3种基本方法+4种实现) ...转载 2019-11-02 20:39:03 · 2098 阅读 · 0 评论 -
扩展欧几里德算法
模板void exgcd(int a,int b){ if (b==0) { x=1; y=0; return ; //得到gcd(b,0)时到达边界值 } // else { exgcd(b,a%b); int k=x; x=y; y=k-(a/b)*y; //根据上方推出的公式进行递归求出结果 } return ;}P1082 同余方程...原创 2019-11-02 19:29:43 · 157 阅读 · 0 评论 -
洛谷 P1048 采药P1049 装箱问题(01背包)
P1048 采药题目描述辰辰是个天资聪颖的孩子,他的梦想是成为世界上最伟大的医师。为此,他想拜附近最有威望的医师为师。医师为了判断他的资质,给他出了一个难题。医师把他带到一个到处都是草药的山洞里对他说:“孩子,这个山洞里有一些不同的草药,采每一株都需要一些时间,每一株也有它自身的价值。我会给你一段时间,在这段时间里,你可以采到一些草药。如果你是一个聪明的孩子,你应该可以让采到的草药的总价值最大...原创 2019-10-27 15:12:14 · 138 阅读 · 0 评论 -
ZCMU 2959: Amity Assessment(x.find(y)!=string::npos)
2959: Amity AssessmentTime Limit: 2 Sec Memory Limit: 256 MBSubmit: 81 Solved: 34[Submit][Status][Web Board]DescriptionBessie the cow and her best friend Elsie each received a sliding puzzle on...原创 2019-10-25 19:21:11 · 197 阅读 · 0 评论 -
大数减法(a,b>0)
#include<bits/stdc++.h>using namespace std;char a[350],b[350];int len1,len2;int c[305],d[350];void jian(int a[],int b[]){int len3=max(len1,len2);for(int i=0; i<len3; i++){c[i]-=d[i]...原创 2019-09-19 20:53:29 · 146 阅读 · 0 评论 -
大数乘法
1117: 高精度乘法之一Description给出a,b两个数,长度不超过50位,求它们的乘积Input如题Output如题Sample Input111111111111111111111111Sample Output12345679011110987654321#include<stdio.h>#include<string.h>#i...原创 2019-09-22 20:47:56 · 208 阅读 · 0 评论 -
ZCMU 1111: 松哥的困惑II(dp)
1111: 松哥的困惑IIDescription松哥历尽千辛万苦终于找到女朋友了,但是一星期后又回到了单身的日子,松哥很生气后果很严重,所以松哥决定大吃一顿,但是由于松哥很胖,他要吃m千克的东西才会饱,松哥喜欢吃n样东西,每份东西有ai千克,需要bi元钱,只有ci份.松哥希望知道最少需要花多少钱才能使他吃饱,你能告诉他嘛.东西只能一份一份买,不能只买半份.Input多组测试数据.每组测试...原创 2019-09-23 20:07:03 · 174 阅读 · 0 评论 -
ZCMU 1129: 第五章:一不小心爱上你(斯特林公式)
1129: 第五章:一不小心爱上你DescriptionO型血的人大多数是行动派,郑微更是将这个特征发挥到了极致。次日上课,阮阮前所未有地发现她在课堂上奋笔疾书,大为惊讶,便凑过去问了一声,“在写什么呀?”郑微大大方方地向阮阮展示了她一早上的智慧结晶,阮阮看了看,“俘虏陈孝正详细行动攻略……”她念完,顿时无语。挺漂亮的一本崭新小本本,上面已经洋洋洒洒地写了将近十页,蝇头小字,字字工整,各个环节...原创 2019-09-24 12:38:32 · 188 阅读 · 0 评论 -
ZCMU 1132: 第八章:我们终究差了一厘米(二叉树通过先序中序,遍历后序)
1132: 第八章:我们终究差了一厘米Description几年后,林静和陈孝正都出现在郑微面前,而工作后的郑微也纠葛在工作、感情甚至阴谋之中。面对林静和陈孝正,郑薇该如何选择。。。选择总是那么困难,每一个结点都有两种选择,这个不是“二叉树”吗?现在有一个二叉树,我们已知它的先序遍历的结果和中序遍历的结果。请你给出它的后序遍历结果。Input输入有多组数据,每组的第一行是一个n,表示这...原创 2019-09-24 20:46:15 · 197 阅读 · 0 评论 -
大数加法A+B(A,B可为负数)
题目链接#include<cmath>#include<cstdio>#include<cstring>#include<iostream>using namespace std;char a[10000005],b[10000005];int c[10000005],d[10000005];void add(int *c,int ...原创 2019-09-17 14:14:07 · 319 阅读 · 0 评论 -
欧拉降幂
欧拉函数加快速幂:ll phi(ll n) { ll ans = 1; for (ll i = 2; i*i <= n; i++) { if (n%i == 0) { n /= i; ans *= i - 1; while (n%i == 0) { n /= i; ans *= i; } } } if (n > 1) ans ...原创 2019-09-06 18:27:17 · 103 阅读 · 0 评论 -
KMP和扩展kmp
转载:https://blog.csdn.net/v_july_v/article/details/7041827#include<stdio.h>#include<string.h>#include<algorithm>using namespace std;const int N=100;int next[100];void GetNextva...原创 2019-07-25 20:37:53 · 115 阅读 · 0 评论 -
Trie树(字典树,单词查找树)
转载:https://blog.csdn.net/forever_dreams/article/details/81009580 原 Trie树(字典树,单词查找树) ...转载 2019-07-25 11:17:16 · 120 阅读 · 0 评论 -
马拉车算法
转载:https://blog.csdn.net/happyrocking/article/details/82622881#include<cstdio>#include<cstring>#include<algorithm>using namespace std;/* p【i】:代表以i为中点的回文串长度。mx:当前回文串的最右端点的位置。...转载 2019-07-24 20:21:27 · 124 阅读 · 0 评论 -
邻接表Dijkstra(求最短路径)
板子板子,学长给的#include<bits/stdc++.h>using namespace std;const int N=1100;const int inf=0x3f3f3f3f;bool vis[N];int dis[N];int n;vector<pair<int,int> >mp[N];struct node{ int ...原创 2019-07-23 18:25:13 · 1210 阅读 · 0 评论 -
最大流最小割
转载:https://blog.csdn.net/qq_41357771/article/details/79416899Dinic#include<cstdio>#include<cstring>#include<iostream>#define MAXN 10005#define MAXE 200005using namespace std;...转载 2019-07-23 16:22:28 · 71 阅读 · 0 评论 -
动态数组建树
TreeProblem Descriptionwls 有三棵树,树上每个节点都有一个值 ai,现在有 2 种操作:将一条链上的所有节点的值开根号向下取整;求一条链上值的和;链的定义是两点之间的最短路。Input第一行两个数 n, q 分别代表树上点的数量和操作数量。第二行 n 个整数,第 i 个数代表第 i 个点的值 ai。接下来 n − 1 行, 每行两个整数 u, v 代...原创 2019-07-15 10:23:50 · 305 阅读 · 0 评论 -
平衡二叉树
#include<stdio.h>#include<string.h>#include<math.h>#include<algorithm>using namespace std;#define inf 0x3f3f3f3fstruct node{ int v; node *left,*right;};node *...原创 2019-07-25 20:42:08 · 95 阅读 · 0 评论 -
逆元
逆元当求解公式:(a/b)%m 时,因b可能会过大,会出现爆精度的情况,所以需变除法为乘法:设c是b的逆元,则有b*c≡1(mod m);则(a/b)%m = (a/b)1%m = (a/b)bc%m = ac(mod m);即a/b的模等于a*b的逆元的模;最后就得出x^(p-2)为x的逆元啦。#include<iostream>#include<vector&g...原创 2019-07-22 09:58:01 · 107 阅读 · 0 评论 -
位运算
&原创 2019-08-02 14:21:59 · 160 阅读 · 0 评论 -
计蒜客 I小灰灰的笼外领地(计算多边形面积)
小灰灰的笼外领地【题目描述】小灰灰在某天吃饱喝足后爬出了自己的笼子出来做运动。小灰灰作为实验室的明星鼠,大家当然不能让它去一些危险的地方,因此春阳哥就在小灰灰笼前的平地上按照顺时针顺序点了几个点,并用线将其顺时针连接了起来。酱,小灰灰就拥有了一个属于自己的安全的“笼外领地”啦!小灰灰在领地中逛久了自然感觉无趣,因此,它想要做一些有挑战的事情——写个程序算出来它的领地究竟有多大!然而,小灰灰实...原创 2019-07-27 19:29:15 · 283 阅读 · 1 评论 -
用vector建立邻接表(图)
有向无权图#include <iostream>#include <vector>#include <cstdlib>#define MAX 10000using namespace std;vector<int> p[MAX];int main(){ int n, m; cin >> n >>...原创 2019-07-23 13:49:27 · 2374 阅读 · 3 评论 -
HDU6621 K-th Closest Distance(主席树)
K-th Closest DistanceTime Limit: 20000/15000 MS (Java/Others) Memory Limit: 524288/524288 K (Java/Others)Total Submission(s): 444 Accepted Submission(s): 157Problem DescriptionYou have an ar...原创 2019-07-31 19:35:17 · 212 阅读 · 0 评论 -
Keen On Everything But Triangle(主席树)
Keen On Everything But TriangleProblem DescriptionN sticks are arranged in a row, and their lengths are a1,a2,…,aN.There are Q querys. For i-th of them, you can only use sticks between li-th to ri-...原创 2019-07-24 16:25:48 · 156 阅读 · 0 评论 -
优先队列用法
#include<bits/stdc++.h>typedef long long ll;using namespace std;const int maxn=2e5+5;struct DR{ int id; double nt; bool operator > (const DR &Vt)const{ return nt>Vt.n...转载 2019-07-22 18:21:31 · 76 阅读 · 0 评论 -
线段树(模板)
#include<iostream>#include<vector>#include<cstdio>#include<cmath>using namespace std;typedef long long ll;int n,p,a,b,m,x,y,ans;struct node{ int l,r,w,f;} tree[400...原创 2019-07-31 10:38:40 · 102 阅读 · 0 评论