10 2017 档案
摘要:先向各位大佬介绍一个水题 任何一个正整数都可以用2的幂次方表示。例如 同时约定方次用括号来表示,即a^b 可表示为a(b)。 由此可知,137可表示为: 进一步:7= 2^2+2+2^0 (2^1用2表示) 所以最后137可表示为: 又如: 所以1315最后可表示为: 输入输出格式 输入格式: 一个
阅读全文
摘要:#include #include #include #include using namespace std; char s[400000]; //存储输入 struct Big { int a[10000]; int x; }; //重载 + Big operator + (Big A,Big B) { int x=max(A.x,B.x); for(int i=1;i=...
阅读全文
摘要:#include #include #include #include #include #include #include using namespace std; struct Tree//字典树 { int fail;//失配指针 int vis[26];//子节点的位置 int end;//标记有几个单词以这个节点结尾 }AC[1000000];//Tr...
阅读全文
摘要:A:马拉车是什么? Q:是一种求回文子串(你也可以用它来去最长回文子串)的方法(速度很快) A:有什么意义? Q:证明了学好写暴力,走遍天下都不怕的道理 马拉车算法的精髓就是把之前匹配过的字符串结果放到后面来使用 小技巧 一个回文串它的对称中心可能是某个字符(aba),也可能是某两个字符之间(aa)
阅读全文
摘要:#include #include #include #include #include #define pi acos(-1) #define rep(i,x,y) for(register int i = x; i '9'); do { x = x*10 + c - '0';c = getchar(); }while(c = '0'); x *= sign; ret...
阅读全文
摘要:又是毕业季2 n/k; 又是毕业季2 一开始很容易想到枚举n个数取k个的所有组合,然后分别用辗转相除法求最大公约数,但是复杂度明显不符合要求,于是必须换一种思路。 我们想到,k个数的公约数含义就是这k个数均含有某个因数,如果我们把所有数的因数全部求出来,发现有k个数均含有某个因数,那么这个数必然是这
阅读全文
摘要:来着——非我非非我大佬的博客
阅读全文
摘要:由于回文分为偶回文(比如 bccb)和奇回文(比如 bcacb),而在处理奇偶问题上会比较繁琐,所以这里我们使用一个技巧,在字符间插入一个字符(前提这个字符未出现在串里)。举个例子:s="abbahopxpo",转换为s_new="$#a#b#b#a#h#o#p#x#p#o#"(这里的字符 $ 只是
阅读全文
摘要:tarjan的算法精髓就是dfn[]和low[]数组 dfn[i]表示在该节点被搜索的次序(时间戳) low[i]表示i或i的子树可以追溯到的最早的栈中节点 判断有强连通分量的条件就是 dfn[i]==low[i] 此时就可以判断i或i的子树是一个强联通分量 那么tarjan的算法过程是什么呢? 大
阅读全文
摘要:#include #include #define ll long long using namespace std; ll a,b,x,y; void exgcd(ll a,ll b,ll &x,ll &y) { if(!b){ x=1,y=0; }else { exgcd(b,a%b,y,x); y-=(a/b)*x;...
阅读全文
摘要:scanf在读入字符串的时候是不加&,因为数组本身就是个地址 当然如果你是在是不确定输入对不对,你就用cin,虽然慢一点,但是很稳定cin:运算符“>>”的作用是跳过空白,读入后面的非空白字符,直到遇到另一个空白字符为止,并在串尾放一个字符‘\0’。 所以在使用cin输入一个中间有空格的字符串时,会
阅读全文
摘要:一》读题 10~20min浏览题目,把握题目方向和做题大致顺序 不要轻敌,最好先看完题目,大概掌握整套题的难度顺序再动手 仔细读题步骤: (1)文件名(也是检查的重点,绝对重要,注意区分l和1和I) (2)空限时限(有助于对题面的理解思考,比如见到1e5就可以优先考虑nlogn的算法,1e6,1e7
阅读全文
摘要:这个对拍主要以下几部分 make————生成数据的程序(随机数) str————标程(需要验证的程序) brute————暴力 bat————对拍程序 代码如下 注意:bat文件在保存的时候文件名要写成(xxx.bat)的形式,否则无法进行数据匹配 注意:1.所有的程序都要放在一个文件夹里 2.每个
阅读全文
摘要:这个对拍主要以下几部分 make————生成数据的程序(随机数) str————标程(需要验证的程序) brute————暴力 bat————对拍程序 代码如下 注意:bat文件在保存的时候文件名要写成(xxx.bat)的形式,否则无法进行数据匹配 注意:1.所有的程序都要放在一个文件夹里 2.每个
阅读全文
摘要:#include #include #include #include using namespace std; const int maxn=200005; int prime[maxn]; bool not_prime[maxn]; int main() { int n,cnt=0; scanf("%d",&n); memset(not_prime,0,sizeof...
阅读全文
摘要:dequeq; void spfa(int s) { for(int i=1;id[x]+hh[i].c) { d[u]=d[x]+hh[i].c; if(!used[u]) { used[u]=1; ...
阅读全文
摘要:void Manacher(){ for (int i=0;t[i];++i,len+=2){ s[i='A'&&t[i]i) r[i]=min(max_r-i,r[2*pos-i]); else r[i]=0; while (i+r[i]+1=0&&s[i+r[i]+1]==s[i-r[i]-1]) r[i]++; if ...
阅读全文
摘要:20171007 【字符串算法】 定义:next[i+1]是最大的j+1使得p[0~j]是p[0~i]的后缀 通过这个next数组来跳过某些冗余计算 作用:当模式串p的长度为j的前缀是长度为i前缀的后缀时,若文本串在i+1的位置失配,则指针可跳到j继续尝试与j+1位置匹配 如何求next指针 假设已
阅读全文
摘要:20171006 【【图论】】 **********************定义***************************** 在讲这个问题之前,首先我们需要了解图论中的图是什么东西。 定义:图G是一个有序二元组(V,E),其中V称为顶集(Vertices Set),其中的元素称为顶点,
阅读全文
摘要:Stein算法是一种计算两个数最大公约数的算法,是针对欧几里德算法在对大整数进行运算时,需要试商导致增加运算时间的缺陷而提出的改进算法。 算法思想: 由J. Stein 1961年提出的Stein算法很好的解决了欧几里德算法中的这个缺陷,Stein算法只有整数的移位和加减法,为了说明Stein算法的
阅读全文
摘要:dijkstra本身每次要for一遍,才能找出最小的节点,但用了堆之后,直接取出堆首就可以了。 但要注意的一点是,c++自带的stl里的priority_queue本身是先入大出的,而我们要求的是最小值,所以我们在push的时候是插入负数,这样就能保证是先入小出的了 代码如下: 各种定义: 主函数
阅读全文
摘要:20171005 【【数据结构】】 【st表】 定义:ST表能够快速高效地支持对静态序列的区间最小值的查询,它由该序列所有长度为2的幂的子序列的最小元素组成,换言之,ST表包含长度为1,2,4,8, .. , 2k的子序列的元素的最小值。 而计算任意长度L(2j<L≤2j+1)的子序列时,只需要取出
阅读全文
摘要:【【dp】】 【树形dp】 大致分为两种(1)从上往下搜,(2)从下往上搜 法一:贪心 把无根树中的随便一个点单做根节点,然后从根节点出发做遍历,找到当前的最长链的终点,再从这个点开始再做一次bfs/dfs 法二:树形dp 枚举每棵数中经过根节点的最长链。 d[i] 以i为根节点的子树向下的最长链
阅读全文
摘要:2017102 【【动态规划】】 【基础内容】 状态设计:往往是观察在搜索过程中需要用到的参数,所表 示的含义往往是“最大”、“最小”、“方案总数”、“0/1”。 状态转移方程一般以数列递推的形式给出,在研究如何代码实现 转移设计:状态都有什么,应该如何转移, 注意无后效性 【线性动态规划】(所有你
阅读全文
摘要:【数论】(所有的等于都是恒等) A^(p-1)=1 (mod p) A^phi(p)=1 (mod p) 费马小定理是欧拉定理的特殊情况 欧拉函数:phi(n)是少于n的数中与n互质的数的数目 求法:小学生容斥 减去含一个素数的,加上含两个素数的,减去含三个函数的……. N(1/1-1/p1-1/p
阅读全文
摘要:20171001 所学内容:分治倍增,搜索模拟,位运算+考试 【时间复杂度】 表示运行时间的增长趋势 T(N)=T(N/2)+O(1) 二分查找 T(N)=2*T(N/2)+O(1) 线段树的节点个数 T(N)=2*T(N/2)+O(N) 快排/归并排序 T(N)=a*T(N/b)+f(1) è主定
阅读全文

浙公网安备 33010602011771号