算法
Rachelwrx
这个作者很懒,什么都没留下…
展开
-
KMP算法
1.什么是前缀后缀: 2.next数组递推: 失配时,模式串向右移动的位数为:已匹配字符数 - 失配字符的上一位字符所对应的最大长度值; 失配时,模式串向右移动的位数 = 失配字符的位置 - 失配字符对应的next 值; void GetNext(char* p,int next[]) { int pLen = strlen(p); next[0] ...原创 2018-02-01 11:49:05 · 328 阅读 · 0 评论 -
动态规划:最长上升子序列(LIS)
题目:好多好多球 描述 一天,Jason买了许多的小球。有n个那么多。他写完了作业之后就对着这些球发呆,这时候邻居家的小朋友ion回来了, Jason无聊之际想到了一个游戏。他把这n个小球从1到n进行标号。然后打乱顺序,排成一排。然后让ion进行一种操作: 每次可以任意选择一个球,将其放到队列的最前端或者队列的最末尾。问至少要进行多少次操作才能使得球的顺序变成正序1,2,3,4,5……n。 输...原创 2019-01-27 11:22:50 · 257 阅读 · 0 评论 -
动态规划:背包dp
01背包题目 //dp[i][j]表示前i件物品恰放入一个容量为j的背包可以获得的最大价值 ①for(int i =1;i<=n;i++) { for(int j=1;j<=V;j++) dp[i][j]=dp[i-1][j]; for(int j=weight[i];j&a原创 2019-01-28 00:06:00 · 204 阅读 · 0 评论 -
排序
#include<stdio.h> #include<string.h> void bubble(int arr[],int n){ for(int i=0;i<n;i++){ if(arr[i]>arr[i+1]){ int temp=arr[i]; arr[i]=arr[i+1]; arr[i+1]=temp; } } } ...原创 2018-02-20 18:32:26 · 314 阅读 · 2 评论 -
大数加法模板
string sum(string s1,string s2) { if(s1.length()<s2.length()) { string temp=s1; s1=s2; s2=temp; } //判断并max s1,s2的值 int i,j; for(i=s1.length转载 2018-02-02 20:42:33 · 198 阅读 · 0 评论 -
并查集
用法: ①在地图上给你若干个城镇,这些城镇都可以看作点,然后告诉你哪些对城镇之间是有道路直接相连的。最后要解决的是整幅图的连通性问题。 ②随意给你两个点,让你判断它们是否连通,或者问你整幅图一共有几个连通分支,也就是被分成了几个互相独立的块。 ③畅通工程,问还需要修几条路,实质就是求有几个连通分支。如果是1个连通分支,说明整幅图上的点都连起来了,不用再修路了;如果是2个连通分支,则只要再修1...原创 2019-02-02 14:51:10 · 188 阅读 · 0 评论