02 2021 档案

摘要:字典树存储字符串,查找方便,迅速; 基本思想就是建立一棵树,每一层都有26个节点(对应26个字母),如果这个字符没有的话就占位,有就通过这个节点向下一层建树 即一个字符串,每个字母对应每一层,对应的层数里面有这个字母就下一层没有就建节点 Trie树例题 #include <iostream> #in 阅读全文
posted @ 2021-02-28 23:23 Carrot_Rui 阅读(43) 评论(0) 推荐(0) 编辑
摘要:#include <bits/stdc++.h> using namespace std; int n, m, ans = 1;//n m 表示要约的数 ans调试函数递归用 clock_t start, finish; //计时器 //辗转相除法 适用于比较大的数 但是最好不要是高精度 % 的效率 阅读全文
posted @ 2021-02-23 23:43 Carrot_Rui 阅读(78) 评论(0) 推荐(0) 编辑
摘要:水 //埃氏筛 void Era(int qwq){ for(int i=2;i<=qwq;i++){ if(vis[i])continue;//是合数就不执行 for(int j=i*2;j<=qwq;j+=i) vis[j]=true;//j=i的倍数,每次加i,即为i的倍数每次加1,p数组的第 阅读全文
posted @ 2021-02-21 23:00 Carrot_Rui 阅读(45) 评论(0) 推荐(0) 编辑
摘要:水 #include <iostream> #include <cstdio> #include <algorithm> using namespace std; const int N = 1e4 + 9; int n ; struct node{ int data; // 数值 int rank 阅读全文
posted @ 2021-02-21 22:59 Carrot_Rui 阅读(36) 评论(0) 推荐(0) 编辑
摘要:水 //fib高精度用二维数组存 #include<cstdio> #include<algorithm> #include<iostream> #include<cstring> using namespace std; int n,len=1,f[5003][5003]; //f[k][i] - 阅读全文
posted @ 2021-02-21 22:57 Carrot_Rui 阅读(60) 评论(0) 推荐(0) 编辑
摘要:水 我们知道对于幂运算有: ab%k=(a%k)(b%k)%k 如: 5 * 6 % 4 = (1+4)(2+4)% 4 = 1 * 2 % 4 因为 1 * 4 和 2 * 4 和4 * 4模4都为0 位运算加速 // 求 m^k mod p,时间复杂度 O(logk)。 int qmi(int 阅读全文
posted @ 2021-02-21 22:55 Carrot_Rui 阅读(50) 评论(0) 推荐(0) 编辑
摘要:前缀和: 一维: #define N 10004 void _1(){ int n, a[N], ans[N]; scanf("%d",&n); for(int i = 1; i <= n; i++){scanf("%d",a+i);ans[i] += ans[i-1] + a[i] ;} // f 阅读全文
posted @ 2021-02-21 22:53 Carrot_Rui 阅读(61) 评论(0) 推荐(0) 编辑
摘要:模板: bool check(int x) {/* ... */} // 检查x是否满足某种性质 // 区间[l, r]被划分成[l, mid]和[mid + 1, r]时使用: int bsearch_1(int l, int r) { while (l < r){ int mid = l + r 阅读全文
posted @ 2021-02-21 22:48 Carrot_Rui 阅读(22) 评论(0) 推荐(0) 编辑
摘要:广度优先搜索: 水 广度优先搜索会先考虑每种状态的和初始状态的距离说人话:与初始状态越接近的情况就越会优先考虑,每个状态要做的事情就是上个状态的扩展。经常是有队列实现,每次取出队首找出队首的扩展状态将其压入队列,知道队列空。 广搜模板: int bfs(int sx,int sy) { Q.push 阅读全文
posted @ 2021-02-21 22:43 Carrot_Rui 阅读(117) 评论(0) 推荐(0) 编辑
摘要:1.归并 2.快排 1.归并排序 归并排序将一组数分成两部分,从这两部分选最小的数到另外的数组中 如:6 2 4 3 5 1 分后: 6 2 4->...->2 4 6 3 5 1->...->1 3 5 接着分别取1 2 3 4 5 6放到另外的数组中 归并排序时间复杂度O(nlogn)最坏情况下 阅读全文
posted @ 2021-02-02 15:43 Carrot_Rui 阅读(64) 评论(0) 推荐(0) 编辑
摘要:OI 赛制数据一般都很大,有时候光是输入输出就占了大半时间 读入数据少时用cin cout 更(写代码的速度)快 读入输出多时用scanf printf 会更快 1 .快读快输模板(不过这玩意更快) //快读: inline void read(int &x){ x = 0; int f = 1; 阅读全文
posted @ 2021-02-02 15:38 Carrot_Rui 阅读(266) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示