power
文章平均质量分 56
yyqxwyb
这个作者很懒,什么都没留下…
展开
-
Catalan数-卡特兰数
Catalan数-卡特兰数一、定义卡特兰数是一个数列,满足递推关系:h(1)=1,h(n) = h(1)*h(n-1) + h(2)*h(n-2) + … + h(n-1)h(1),n>=2该递推关系的解为:h(n+1) = C(2n,n)/n+1,n=1,2,3,…(其中C(2n,n)表示2n个中取n个的组合数)二、应用1.进出栈问题【问题描述1】 1, 2, 3, 4依次进栈,则可能的一种进出栈顺序为:1in->2in->2out->3in->4in->原创 2021-05-13 19:17:30 · 284 阅读 · 0 评论 -
分块
#include<iostream>#include<cstdio> #include<string>#include<string.h>#include<cmath>#include<algorithm>using namespace std;#define maxn 50010int fk[maxn];//1-n分块区int dy[250];//每一块的总和int zz[maxn];//原始数组int ans,原创 2021-05-06 21:50:08 · 75 阅读 · 0 评论 -
容斥原理
容斥原理:所有情况相加-重复的情况。hdu1796推荐指数*****题意:给n和m,m个数,在小于n的数中,有多少为m个数的倍数。思路:m个数的倍数-重复计入的部分,主要是理解容斥原理。//二进制 #include<cstdio>#include<iostream>using namespace std;int gcd(int a,int b){ return b==0?a:gcd(b,a%b);}int arr[25];int main(){原创 2021-05-04 15:02:16 · 150 阅读 · 0 评论 -
DP小小总结
先贴上题目练习密码20210401DP之旅开始了~A基础方程:dp[i][j]=max(dp[i-1][j-1],dp[i-1][j])+a[i][j];这样是考虑[i][j]位置可由哪个位置过来B巨巨巨坑!看题容易漏条件:如果当前格子是(x,y),下一步可以是(x+1,y),(x,y+1)或者(x,y*k)其中k>1。/*前提dp[i][j]=-inf;定义所有为负值因为现在考虑是[i][j]可以到哪里,到的位置初始值-inf;*/dp[1][1]=a[1][1];for原创 2021-04-09 21:47:22 · 102 阅读 · 0 评论 -
拓扑排序模板
#include<cstdio>#include <iostream>#include <algorithm>#include<cstring>#include<string.h>#include<vector>#include<queue>#include <stdlib.h>using namespace std;const int maxn=1e3;vector<int>vv原创 2021-04-07 20:18:02 · 43 阅读 · 0 评论 -
博弈不完全总结
一.巴什博奕(Bash Game)一堆n个物品,两个人轮流从这堆物品中取物,规定每次至少取1 or p个,最多取m个。最后取光者得胜.eg:m=4n=4 A必胜n=5 A 不论先拿了几个,B 都可以一次性把剩下的拿完,A 必输n=6 A 可以先拿 1 个,然后数量变成了 5 个,此时问题就变成了n=5.B 无论拿几个,A 都可以一次性把剩下的拿完.A必胜.n=7 8 9 同上n=10 同n=5 A 必输n 是(m+1)的倍数,那么 先手者就必输。验证如下:如果物品数量 n 可以化成原创 2021-03-12 21:29:09 · 122 阅读 · 0 评论 -
kmp
#include<cstdio>#include<iostream>#include<string.h>#include<cmath>#include<cstring>#include<string>#include<stack>#include<algorithm>using namespace std;typedef long long ll;char a[1000010];//主串 c原创 2021-03-11 19:38:04 · 49 阅读 · 0 评论 -
组合数学:斯特林数+贝尔数
斯特林数-不完整记录yyqxwyb第一类Stirling数:n个元素的集合形成k个环;边界:S(n,0)=0,n>=1;S(n,n)=1,n>=0;S(n,k)=S(n-1,k-1)+(n-1)S(n-1,k),1<=k<=n-1;第二类Stirling数:n个物体划分成k个非空的无差别集合;边界: S(n,0)=0,n>=1,S(n,n)=1,n>=0;S(n,k)=k*S(n-1,k)+S(n-1,k-1),1<=k<=n-1;k!S(原创 2021-01-03 21:12:28 · 547 阅读 · 0 评论 -
单调栈
单调栈//伪代码stack<int> st;for (遍历数组){ if (栈空 || 栈顶元素>=当前元素) { 入栈; } else { while (栈非空 && 栈顶元素<当前元素) { 栈顶元素出栈; 更新结果; } 当前元素入栈; }}例题套路弄懂了 但是怎么就沾边了呢 好奇怪 感觉对不上啊 多看几遍可能就有不一样的顿悟叭...原创 2021-01-21 12:06:12 · 69 阅读 · 0 评论