摘要: [toc] 排序 排序就多了,也一直懒得更新,毕竟百度上一搜一大把,写的也肯定比我好,以后什么时候不懒了再更新吧 字典树排序 突发奇想,纯粹是突然想到的。 对于字符串(数字也可以看成是一个字符串)的排序,写了几种基本排序,突然想到字典树。字典树不就是按照字典序排列的吗?把所有字符串插入到字典树中,然 阅读全文
posted @ 2018-12-11 14:19 凌乱风中 阅读(96) 评论(0) 推荐(0) 编辑
摘要: [toc] 背包 你是喜欢一级包,二级包还是三级包呢? 当然是01包了 01背包 先来看一个问题: 你有一个可以容纳m的背包,然后你有n个零食,每个零食有自己的重量w[i],每个零食还有自己的好吃度v[i],作为吃货的你当然是希望你的背包里面装的零食的好吃度越高越好了,但是呢,你的背包可能不够大,所 阅读全文
posted @ 2018-12-06 12:20 凌乱风中 阅读(130) 评论(0) 推荐(0) 编辑
摘要: [toc] 线段树 暂时没想好原理,先贴个代码,留待后续更新………………(逃………… 线段树 建树 区间更新 当然不止区间更新,还有一个单点更新,但是你可以把单点想成一个区间嘛,这样就变成了区间更新 查询 完整代码 主席树 主席树又叫可持久化线段树或者函数式线段树,其实都是同一种东西 以下代码已通过 阅读全文
posted @ 2018-12-04 19:23 凌乱风中 阅读(100) 评论(0) 推荐(0) 编辑
摘要: [toc] HashTable Separate Chaining 阅读全文
posted @ 2018-11-27 14:53 凌乱风中 阅读(238) 评论(0) 推荐(0) 编辑
摘要: [toc] 字典树 HDU 3460 include include include include using namespace std; char s[60]; int sum=0; struct tire { tire next[26]; tire() { for(int i=0;inext 阅读全文
posted @ 2018-11-26 18:18 凌乱风中 阅读(97) 评论(0) 推荐(0) 编辑
摘要: [toc] AC自动机 HDU 2896 指针写法(爆内存,MLE) include include include include include using namespace std; define mian main define ll long long const int kind = 阅读全文
posted @ 2018-11-26 18:05 凌乱风中 阅读(123) 评论(0) 推荐(0) 编辑
摘要: [toc] AC自动机 第一次看到这个以为是你把题目放进去就可以自己AC,后来发现果然是年少天真,想多了。 学AC自动机之前你需要学会KMP和字典树。 AC自动机相当于把KMP和字典树连接在一起,fail指针相当于KMP中的NEXT数组。,fail指针才是AC自动机的精髓。(当然,现在水平有限不能将 阅读全文
posted @ 2018-11-26 18:00 凌乱风中 阅读(113) 评论(0) 推荐(0) 编辑
摘要: Manacher 阅读全文
posted @ 2018-11-26 17:37 凌乱风中 阅读(98) 评论(0) 推荐(0) 编辑
摘要: [toc] KMP 得到NEXT数组 理论 我们先来看一个例子: abcaabc 将这个当成模式串,当我们用这个模式串去匹配文本串的时候,我们首先有一种很暴力的做法: 就是每次匹配失败的时候重新开始匹配,但这样有很多重复。 那么我们是不是可以想一种办法,减少这种重复呢。 先看一个表格 table t 阅读全文
posted @ 2018-11-26 17:33 凌乱风中 阅读(176) 评论(0) 推荐(0) 编辑
摘要: [toc] 字典树 指针写法 数组写法 01字典树(区间异或) 阅读全文
posted @ 2018-11-26 17:26 凌乱风中 阅读(176) 评论(0) 推荐(0) 编辑
摘要: [TOC] 模板 快速幂 快速乘 素数筛 const int N = 1e7 + 5; bool isprime[N];//isprime[i]表示i是不是质数 int prime[N];//prime[N]用来存质数 从1开始 int tot=1;//tot表示[2,N]之间质数的数量 void 阅读全文
posted @ 2018-11-26 16:37 凌乱风中 阅读(90) 评论(0) 推荐(0) 编辑
摘要: 1 #include <iostream> 2 #include <cstring> 3 using namespace std; 4 int dp[600][600]; 5 long long a[600]; 6 7 int main() 8 { 9 int n,m; 10 cin>>m>>n; 阅读全文
posted @ 2018-05-11 23:08 凌乱风中 阅读(85) 评论(0) 推荐(0) 编辑
摘要: 1 #include <iostream> 2 using namespace std; 3 #define ll long long 4 5 int main() 6 { 7 long long n; 8 cin>>n; 9 ll x; 10 long long sum=0; 11 long lo 阅读全文
posted @ 2018-05-11 21:54 凌乱风中 阅读(73) 评论(0) 推荐(0) 编辑
摘要: 1 #include <iostream> 2 using namespace std; 3 #define mod 1000000007 4 int dp[100005]; 5 6 int main() 7 { 8 int a[]={1,2,5,10,20,50,100,200,500,1000, 阅读全文
posted @ 2018-05-11 17:15 凌乱风中 阅读(78) 评论(0) 推荐(0) 编辑
摘要: 1 #include <iostream> 2 using namespace std; 3 long long dp[1001][1001]; 4 const long long mod=1e9+7; 5 int main() 6 { 7 int n,m; 8 cin>>n>>m; 9 for(i 阅读全文
posted @ 2018-05-10 20:48 凌乱风中 阅读(71) 评论(0) 推荐(0) 编辑
摘要: 第一种解法(超时) 1 #include <iostream> 2 using namespace std; 3 #define ll long long 4 ll a[500005]; 5 int dp[500005]; 6 7 int main() 8 { 9 int n; 10 cin>>n; 阅读全文
posted @ 2018-05-10 20:33 凌乱风中 阅读(133) 评论(0) 推荐(0) 编辑
摘要: 1 #include <iostream> 2 using namespace std; 3 int dp[600][600]; 4 5 int main() 6 { 7 int n; 8 cin>>n; 9 for(int i=1;i<=n;i++){ 10 for(int j=1;j<=n;j+ 阅读全文
posted @ 2018-05-10 18:01 凌乱风中 阅读(81) 评论(0) 推荐(0) 编辑
摘要: #include <iostream> using namespace std; int dp[600][600]; int main() { int n; cin>>n; for(int i=1;i<=n;i++){ for(int j=1;j<=i;j++){ cin>>dp[i][j]; } 阅读全文
posted @ 2018-05-09 22:41 凌乱风中 阅读(72) 评论(0) 推荐(0) 编辑
摘要: #include <iostream> #include <cstring> using namespace std; int dp[1005][1005]; int vis[1005][1005]; string a,b; void print(int len1,int len2) { if(vi 阅读全文
posted @ 2018-05-09 22:33 凌乱风中 阅读(90) 评论(0) 推荐(0) 编辑
摘要: 1 #include <iostream> 2 using namespace std; 3 #define ll long long 4 5 int main() 6 { 7 int n; 8 cin>>n; 9 ll x; 10 ll sum=0; 11 ll maxn=0; 12 for(in 阅读全文
posted @ 2018-05-09 21:19 凌乱风中 阅读(81) 评论(0) 推荐(0) 编辑
摘要: 1 #include <iostream> 2 using namespace std; 3 void MERGE(int a[],int p,int q,int r); 4 void MERGESORT(int a[],int p,int r); 5 6 void MERGE(int a[],in 阅读全文
posted @ 2018-01-30 14:29 凌乱风中 阅读(75) 评论(0) 推荐(0) 编辑
摘要: 1 #include <iostream> 2 #include <cstring> 3 using namespace std; 4 int main() 5 { 6 string s="09jslkuteng"; 7 cout<<s.substr(3)<<endl; //输出下标为3开始到最后的 阅读全文
posted @ 2017-12-18 18:20 凌乱风中 阅读(80) 评论(0) 推荐(0) 编辑