- 博客(37)
- 资源 (4)
- 收藏
- 关注
原创 HDU-4300-Clairewd’s message(KMP+特判)
博主链接题目题意:先给你一个密码表。然后给你一个不一定完整的串。原串满足前一半是密码,后一半是明码。要求你最小的补全这个串。题解:设给的串长度为len,则1…(len+1)/2的字母一定是密码。我们将1…(len+1)/2的字母全部安装密码表转换成原文,然后将得到的串求Next数组。再根据Next数组求出最大的相等的前后缀(长度一定小于或等于len/2,题目要求),然后输出就可以。然后...
2018-09-30 14:47:15 716
原创 HDU-2594-Simpsons’ Hidden Talents(KMP的next数组应用)
博主链接题目题意:给你两个串,求第一个串的前缀和第二个串的后缀的相同长度题解:( 这题和POJ2752基本一样,都是利用next性质求公共前后缀 )。利用strcat(s,s1)将两个串接起来,利用KMP的next数组性质如果s[next[n-1]]=s[n],则此时前后缀相同,然后再开始回滚,若s[next[n-1]] == s[n-1],则子串s[0,1,2,…,next[n-1]...
2018-09-28 22:59:41 746
原创 POJ2752-Seek the Name, Seek the Fame(找相同的前后缀)
题目博主博客题意:求一个串中相同前后缀长度,并输出思路:利用KMP的next数组性质;如果s[next[n-1]]=s[n],则此时前后缀相同,然后再开始回滚,若s[next[n-1]] == s[n-1],则子串s[0,1,2,…,next[n-1]]是满足条件的子串。然后判断s[next[next[n-1]]] == s[n-1]是否成立,这样一直回滚,直到next[next[…n...
2018-09-28 19:00:51 783
原创 Blue Jeans---poj3080(kmp+暴力求子串)
题目题意:给一个n,输入n个长度为60的字符串,求最长公共子串(2<n<=10),如果公共串长度大于等于3就输出这个子串(开始真的是瞎了,看了题直接将所有字符串连接来,求了波next数组,然后完美求出了子串长度,却发现要求是输出子串,心里***)**思路:(KMP+暴力求子串)枚举第一个字符串的不同长度子串,判断她是否为下面多有的公共子串?如果是的话,那么我们就表明找到,...
2018-09-26 22:16:30 883
原创 C/C++文件读写操作大杂烩
文件读写c++:ifstreamfstream in; //读文件in.open("路径"); //只读 可以放在fstreaam in("路径");fstream out; //写文件out.open("路径");out.cl
2018-09-25 22:42:46 714
原创 Codeforces Round #512---C. Vasya and Golden Ti
题目题意:给你一个由0-9组成的串,问能不能将串分成2份及两份以上,使每份数和相等解题思路:先特判下如果串中只有一种字符且串长度大于2则肯定可以,然后求出把0消去后串的前缀和(因为0对和没影响。再枚举i(i从1到n)位的前缀和num[i],再看看(i-n)中有多少个前缀和num[j]能整除num[i],如果满足的数量ans大于等于2且num[n]/ans==num[i],则一定可以分...
2018-09-23 23:46:28 682 3
原创 Codeforces Round #512---B.Vasya and Cornfield
题目题意:给出一个矩形,顶点坐标具有笛卡尔性质,然后m次询问,每次询问给一个点,温这个点是否再矩形内解题思路:因为矩形顶点具有笛卡尔性质所以矩形4条边的方程分别为y=a+x,y=a-x,y=x-a,y=2*n-d-x,所以判断下点和4条边的关系便可值答案代码:#include<stdio.h>#include<b
2018-09-23 23:29:34 489
原创 Codeforces Round #511 (Div. 2)--C. Enlarge GCD
题目解题思路题解:先求出元素的最大公因子,开一个数组num记录每个数出现次数,再利用素数筛,求出所有数有当前质数因子的的个数代码#include<stdio.h>#include<bits/stdc++.h>#define met(a) memset(a,0,sizeof(a))#define fup(i,a,n,b) for(int i=a;i&a
2018-09-23 15:44:12 287
原创 HDU-1358-Period(KMP求前缀循环节)
题目题目链接解题思路题解:先求出元素的最大公因子,开一个数组num记录每个数出现次数,再利用素数筛,求出所有数有当前质数因子的的个数代码#include<stdio.h>#include<bits/stdc++.h>#define met(a) memset(a,
2018-09-22 00:37:04 1451
原创 后缀数组DA模板
/* Problem: JZOJ1598(询问一个字符串中有多少至少出现两次的子串) Content: SA's Code and Explanation Author : Anoyer*/#include <cstdio>#include <cstring>#include &amp
2018-09-18 22:52:31 964
原创 最短公共祖先模板
HDU1841–题意是给出两个串,用这两个串组成一个新串,使新串包含这两个串,问这个新串的长度最小是多少,显然,对于两个串A,B,A如果是B的字串或者B如果是A的字串的话,直接输出那个母串的长度即可,如果没有这种关系,那么看一个串的后缀是否是另一个串的前缀如果某个串的后缀与另一个串的前缀的公共部分最长,则答案=A.length+B.length-公共长度。#include<stdio...
2018-09-17 20:34:09 1486
原创 扩展KMP模板
#include<bits/stdc++.h>using namespace std;const int maxn=100010;//字符串长度最大值 int next[maxn],ex[maxn];//ex数组即为extend数组char s[maxn],s2[maxn];int n;//预处理计算next数组void getnext(){ int i=0,j,po,...
2018-09-17 20:26:53 649
原创 Manacher回文串算法(马拉车)模板
求一个串中最长回文串的长度#include<stdio.h> #include<iostream> #include<string.h>#include<algorithm> using namespace std;char s[111111];char s_new[111111*2];int p[
2018-09-17 20:26:08 550
原创 字符串编辑距离模板
编辑距离,⼜又称Levenshtein距离(也叫做Edit Distance),是指两个字串串之间,由⼀一个转成 另⼀一个所需的少编辑操作次数。许可的编辑操作包括将⼀一个字符替换成另⼀一个字符,插⼊入⼀一个字 符,删除⼀一个字符#include<bits/stdc++.h>using namespace std;const int N = 1e3 + 5; int T, cas...
2018-09-17 20:24:14 2109
原创 Sunday算法模板
#include&lt;stdio.h&gt;#include&lt;iostream&gt;#include&lt;algorithm&gt;#include&lt;string&gt;#include&lt;cstring&gt;using namespace std;string s,p;int next_[257]
2018-09-17 20:23:09 646
原创 KMP模板及优化
KMP模板#include&lt;bits/stdc++.h&gt;using namespace std;const int maxn=10001;int next[maxn];char s[maxn];char p[maxn];int cnt=0;void prefix_next(int n){ next[0]=0; int len=0; int i=1; while(...
2018-09-17 20:22:27 2040
原创 Karp-Rabin算法模板
#include&lt;stdio.h&gt;#include&lt;iostream&gt;#include&lt;algorithm&gt;#include&lt;string&gt;#include&lt;cstring&gt;#define d 256 //字符表中字符数目 using namespace std;
2018-09-17 20:20:32 1276
原创 字符串Hash模板
#include&lt;stdio.h&gt;#include&lt;bits/stdc++.h&gt;#define ll long long intusing namespace std;ll gethash(char *s,int m){ ll h=0; for(int i=0;s[i];i++) h=((h&lt;&lt;8)+s[i])%m; return h;}
2018-09-17 20:19:34 571
原创 AC自动机模板
#include&lt;stdio.h&gt;#include&lt;bits/stdc++.h&gt;#define ll long long int#define max_n 1000050#define max_tot 500050#define met(a) memset(a,0,sizeof(a))#define fup(i,a,n,b) for(int i=a;i&lt;n...
2018-09-17 20:18:14 1147
原创 MakeDown使用说明
MakeDown使用说明欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用...
2018-09-17 20:10:36 924
原创 素数筛+埃筛模版
博主链接普通的素数筛#include<stdio.h>#include<cstring>#include<bits/stdc++.h>using namespace std;const int MAX=1e7+7;//求MAX范围内的素数long long su[MAX],cnt;bool isprime[MAX];void prim...
2018-09-16 16:27:36 1372
原创 欧几里得及拓展欧几里得
博主链接欧几里得int gcd(int a,int b){ return (b==0)?a:gcd(b,a%b); //一条语句搞定(三元运算符)装逼,跟上面略有不同,上面做到t=0,这里做到b=0}拓展欧几里得int gcd(int a,int b){ return (b==0)?a:gcd(b,a%b); //一条语句搞定(三元运...
2018-09-16 16:27:30 947
原创 整除分块
博主链接for(int i=1,last;i<=n;i=last+1){ last=n/(n/i); //该区间的最后一个数 ans+=(last-i+1)*(n/i);}
2018-09-16 16:27:24 1474
原创 组合数打表及快速求组合数
博主链接求组合数ll C(ll n,ll m) {ll ret=1;for(ll i=1; i<=m; ++i)ret=ret*(n-i+1)/i; return ret;}组合数打表#include <bits/stdc++.h>using namespace std;int C[1005][1005];int main(){ C[0][0] =...
2018-09-16 16:27:21 1361
原创 最长循环节模版
博主链接//正整数k的倒数1/k,写为10进制的小数如果为无限循环小数,//则存在一个循环节,求<=n的数中,倒数循环节长度最长的那个数,//假如存在多个最优的答案,输出所有答案中最大的那个数。 /**如果1<=b<a,a没有2或5的质因子,并且a与b互质,那么b/a 的循环节位数恰好等于e 满足min(10^e≡1(moda))),e是正整数。*如果1<...
2018-09-16 16:27:15 1636
原创 欧拉函数模版
博主链接求一个数的欧拉函数ll phi(ll x){ //求1~n与n互质的个数 // phi(1323)=phi(3^3*7^2)=1323*(1-1/3)*(1-1/7) ll i, ans = x; for (i = 2; i*i <= x; i++){ if (x%i == 0) ans = ans - ans / i; while(x%...
2018-09-15 22:08:42 1296
原创 逆元模版(比较全)
博主链接//费马小定理求逆元ll quick_mod(ll a,ll b,ll c) //快速幂计算(a^b)%c{ ll ans = 1; while(b) { if(b&1) //相当于b%2==1 ans = (ans*a)%c; a = (a*a)%c; b>&...
2018-09-15 22:05:41 665
原创 莫比乌斯函数模版
博主链接//莫比乌斯打表(phi可以删除)//phi--欧拉函数表 miu--莫比乌斯函数表 fac--i最大的素因子辅助打phi表int phi[maxn],miu[maxn],fac[maxn];ll f[maxn], F[maxn];void init(){ for (int i = 1; i < maxn; ++i) fac[i] = i; phi[1]...
2018-09-15 21:57:37 1476
原创 矩阵快速幂模版
博主链接矩阵快速幂模版#include<bits/stdc++.h> using namespace std;int N=7;void Matrix(int (&a)[2][2],int b[2][2]){ int tmp[2][2]={0}; for(int i=0;i<2;++i) for(int j=0;j<2;++j) fo...
2018-09-15 21:50:10 533
原创 基数排序MSD
博主链接#include<stdio.h>#include<iostream>#include<algorithm>#include<string>#include<malloc.h>using namespace std;const int maxn=1e6+7;int arr[maxn]={12,14,54,5,6...
2018-09-15 21:46:45 1321
原创 浮点型数据高精度乘法
/*有2堆石子。A B两个人轮流拿,A先拿。每次可以从一堆中取任意个或从2堆中取相同数量的石子,但不可不取。拿到最后1颗石子的人获胜。假设A B都非常聪明,拿石子的过程中不会出现失误。给出2堆石子的数量,问最后谁能赢得比赛。例如:2堆石子分别为3颗和5颗。那么不论A怎样拿,B都有对应的方法拿到最后1颗。Input第1行:一个数T,表示后面用作输入测试的数的数量。(1 <= T <...
2018-09-15 21:45:25 1282
原创 分解出一个数的所有质因子
//n为要分解的数 //Fac数组存所有质因子 //cnt为质因子个数void primeFactor(int n){ while(n%2==0){ Fac[cnt++]=2; n/=2; } // 经过第二步, 此时 n 一定为奇数 // 并且不存在偶数的素因子 // 所以我们可以跳过所有偶数 (i += 2) ...
2018-09-15 21:42:03 1964
原创 杜教筛--求积性函数前缀和
博主链接模版中以求欧拉函数和莫比乌斯函数前缀和为例#include<stdio.h>#include<bits/stdc++.h>#define ll long long int;#define N 2001000#define ni 500000004 //2的逆元using namespace std;const long long i...
2018-09-15 21:39:20 567
原创 求大数的n次方对m取模(欧拉降幂)
博主链接#include <stdio.h>#include <bits/stdc++.h>using namespace std;typedef long long ll;const int INF = 0x3f3f3f3f;const int MAXN = 1e5 + 10;const int MOD = 1e9 + 7;char s[MAXN];...
2018-09-15 21:35:03 2914 2
原创 Miller-Rabin素性测试
博主链接/** 随机素数测试(伪素数原理理)* CALL: bool res = miller(n);* 快速测试n是否满⾜足素数的“必要”条件,出错概率极低* 对于任意奇数n > 2和正整数s,算法出错概率≤2^(-s) */ #include<stdio.h>#include<bits/stdc++.h>#define l...
2018-09-15 21:32:32 842
原创 博弈论模版(Bash博弈,Nim博弈,威佐夫博弈,SG打表)
博主链接Bash--两人从一堆a个石子里面轮流取石子,每次最多去b个,取到最后一个石子获胜int main() { int t; scanf("%d", &t); while (t--) { int a, b,flag; scanf("%d%d", &a, &b); if (a % (b + 1) == 0)flag = 2; else fl...
2018-09-12 17:20:11 1061
原创 51Nod---1678 lyk与gcd (莫比乌斯反演)
题目链接这天,lyk又和gcd杠上了。它拥有一个n个数的数列,它想实现两种操作。1:将 ai 改为b。2:给定一个数i,求所有 gcd(i,j)=1 时的 aj 的总和。Input第一行两个数n,Q(1<=n,Q<=100000)。接下来一行n个数表示ai(1<=ai<=10^4)。接下来Q行,每行先读入一个数A(1<=A<=2)。...
2018-09-05 17:56:43 855
银行管理系统(MFC实现可视化)--Part2
2019-12-28
银行管理系统(MFC实现可视化)--Part1
2019-12-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人