基本算法
文章平均质量分 80
#math.h
欢迎一起交流鸭
展开
-
洛谷刷题心得记录
1.转化思想:元变角 ; 结果最后处理100 10% 1202.四舍五入:/* +0.5的话,如果大于等于0.5就往前进一位,小于0.5就不往前进,然后强制转换到int会向下取整,正好四舍五入到整数,这是一种我认为最简单的四舍五入方法。如果需要四舍五入到某一位,那么就*多少多少然后再除就好了比如小数点后一位就*10/10.0后两位*100/100.0跟一个.0代表是浮点运算恩,......原创 2022-06-22 21:09:43 · 626 阅读 · 0 评论 -
bm算法
https://blog.csdn.net/qq_29423387/article/details/86531392原创 2020-01-18 15:35:49 · 180 阅读 · 0 评论 -
bf匹配
#include <stdio.h>#include <string.h>//串普通模式匹配算法的实现函数,其中 B是伪主串,A是伪子串int mate(char * B,char *A){ int i=0,j=0; while (i<strlen(B) && j<strlen(A)) { if (B[i]=...原创 2020-01-18 14:16:32 · 184 阅读 · 0 评论 -
最快乐的舞会 树形dp
最快乐的舞会 树形dp代码:#include<cstdio>#include<cstring>#include <vector>using namespace std;int dp[6010][2];int father[6010];int visit[6010];int n;vector <int> zi[6010];v...原创 2019-12-06 22:50:31 · 83 阅读 · 0 评论 -
最下公倍数(lcm)和最大公因数(gcd)
#include"stdio.h"int gcd(int a,int b);//函数声明int lcm(int a,int b);//函数声明int main(){ int a,b; scanf("%d %d",&a,&b); printf("%d %d",gcd(a,b),lcm(a,b)); return 0;} int gcd(in...原创 2019-11-29 20:16:02 · 142 阅读 · 0 评论 -
单调栈
单调栈模板* 本代码对应的是单调递减栈 *共n个元素,编号为0~n-1*/while(栈不为空) 栈顶元素出栈; //先清空栈a[n]=-1;for(i=0;i<=n;i++){ if(栈为空或入栈元素小于等于栈顶元素) 入栈; else { while(栈非空并且入栈元素大于栈顶元素) { 栈顶元素出栈; 更新结果; } 面对不同的题,...原创 2019-11-29 15:38:33 · 107 阅读 · 0 评论 -
树状数组
单点更新、区间求和模板模板模板:int n;int a[10005],c[10005]int lowbit(int x){ return x&(-x);}void updata(int i,int k){ while(i <= n){ c[i] += k; i += lowbit(i); }}int getsum(int i){ int res =...原创 2019-11-05 21:05:22 · 86 阅读 · 0 评论 -
字典树
#include<stdio.h>#include<string.h>char a[100][25];char s[25];bool check(int n) { int i, j; for (i = 0; i < n; i++) { int len = strlen(a[i]); for (j = 0; j...原创 2019-11-05 20:13:34 · 134 阅读 · 0 评论 -
划分树
#include<cstdio>#include<algorithm>using namespace std;#define MAX 100000int tree[20][MAX+50]; //第一维存原值,后来的存划分后的左右子树的值int toLeft[20][MAX+50]; //代表当前层区间[left,right]进入左子树的数目int...原创 2019-11-05 15:16:45 · 135 阅读 · 0 评论 -
线段树
排兵布阵/** *线段树的简单应用,用scanf和printf输入输出 *cin和cout会超时 */#include<iostream>#include<algorithm>#include<cstdio>#include<cstring>using namespace std;int a[50001];//存储结点的位置st...原创 2019-11-03 20:48:49 · 81 阅读 · 0 评论 -
全排列
插入法:对于全排列的求解,第一个想到的肯定是通过递归的解法。例如对于数列p(n)={1,2,3,…,n},从中间取出一个数比如1,剩下的只需要求出p(n-1)的全排列,然后依次把1加入p(n-1)的全排列中。对于全排列也有2中方法:将取出的数(例子中是1),依次插入到p(n-1)的全排列的不同位置上。在这里称之为插入法。首元素依次和后续的元素交换,然后求首元素之后的子序列的全排列。这里称...原创 2019-10-29 20:46:12 · 2156 阅读 · 0 评论 -
ekmp
ekmphttp://acm.hdu.edu.cn/showproblem.php?pid=4300暴力#include<iostream>#include<cstdio>#include<cstring>using namespace std; const int MAXN = 1000005;char a[50];char b[MAXN]...原创 2019-10-29 20:43:28 · 162 阅读 · 0 评论 -
kmp
KMPvoid Next(char*T,int *next){ next[1]=0; int i=1; int j=0; //next[2]=1 可以通过第一次循环直接得出 while (i<strlen(T)) { if (j==0||T[i-1]==T[j-1]) { i++; j+...原创 2019-10-28 20:47:31 · 159 阅读 · 0 评论