约数问题 求约数1234567891011121314vector<int> y(int x){ vector<int>ans; for(int i=1;i<=x/i;i++) { if(x%i==0)//能整除,为一个约数 { ans.push_back(i);//加入答案 2022-03-12 算法
引用传值 同样的cmp函数 123 auto cmp = [&](const vector<int> a, const vector<int> b) { return a[0] == b[0] ? (a[1] < b[1]) : (a[0] > b[0]);}; 使用值传递会直接超时 123 auto cmp = [&](co 2022-03-11 C++
查分算法 差分可以看做是求前缀和的逆向过程。差分数组的定义为d[i] = a[i]-a[i-1];例如现在有一个数组为[1,3,5,4,2]那么它的差分数组为[0,2,2,-1,-2] 差分数组如何做到时间复杂度为O(1)的数组区间修改的。例如,现在想对区间[l,r]的进行加v的操作。那么只需要在差分数组进行操作:d[l]=d[l]+v;d[r+1]=d[r+1]-v;这样在 2022-03-10 算法
字典数tried 字典树又称单词查找树,Trie树,是一种树形结构,是一种哈希树的变种。典型应用是用于统计,排序和保存大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。它的优点是:利用字符串的公共前缀来减少查询时间,最大限度地减少无谓的字符串比较,查询效率比哈希树高。 字符串统计:模板: 12345678910111213141516171819202122232425int son[N][ 2022-03-10 算法
二分模版 一般二分模板 123456789101112int find(int x){ int l=0; int r =n-1; while(l<r) { int mid = (l+r)>>1; if(a[mid]>=x) r= mid; else l =mid+1; } return l;} 注意:如果能找到等于x的 2022-03-09 算法
求组合数的多种方法 递推法C[a][b] = C[a-1][b-1]+C[a-1][b];很好理解,从一堆苹果中拿出一个苹果,那么从这a个苹果中取出b个苹果可根据有无这个苹果分成两种情况,得到递推式。模板题:https://www.acwing.com/problem/content/887/代码: 12345678910111213const int mod = 1e9+7;int c[N][N];voi 2022-03-05 算法
离散化+差分的坑 4月24日,周赛题T4。https://leetcode-cn.com/problems/number-of-flowers-in-full-bloom/根据题目,想到离散化+差分处理。tle代码: 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545 2021-04-24 算法
深度优先搜索和广度优先搜索 深度优先搜索和广度优先搜索。 深度优先搜索以输出排列数为例,主要进行状态的转移。 输出排列数https://www.acwing.com/activity/content/problem/content/905/1234567891011121314151617181920212223242526272829303132#include<bits/stdc++.h>using name 2020-03-29 算法
SQL注入 常用的注入,有联合注入与堆叠注入。联合注入即为 1’ or 1 union 注入语句#堆叠注入即为 1’ or 1;注入语句#注入中的预编译方法:set是设置一个新列prepare是进行定义一个语句execute是执行playload: 1set @sql = CONCAT('se','lect * from `1919810931114514`;');pr 2020-03-11 CTF