算法
文章平均质量分 66
dpy95
这个作者很懒,什么都没留下…
展开
-
blog第一天
昨天打了多校第一场,惨吃零蛋。决定开个博客好好冷静下。把自己的学习记录下来原创 2015-07-22 22:35:17 · 300 阅读 · 0 评论 -
快速幂
以下以求a的b次方来介绍[1] 把b转换成二进制数。该二进制数第i位的权为例如11的二进制是101111 = 2³×1 + 2²×0 + 2¹×1 + 2º×1因此,我们将a¹¹转化为算快速幂可以用位运算这个强大的工具实现1b and 1{也就是取b的二进制最低位(即第0位) 判断b是否为奇数,是则为1}转载 2015-11-03 18:44:06 · 379 阅读 · 0 评论 -
ACMJAVA
POJ 1131 1205 1220 1405 1503 1604 1894 2084 2305 2325 2389 2413 3101 3199对于ACMer来说,java语言最大的优势就是BigInteger,Bigecimal,String三个类.这三个类分别是高精度整数,高精度浮点数和字符串,之所以说这个是它的优势是因为java的这三个类有丰富的成员函数转载 2015-10-13 21:48:54 · 450 阅读 · 0 评论 -
后缀数组
目录摘要 …………………………………………………………………………………4关键字 ………………………………………………………………………………4正文 …………………………………………………………………………………4一、后缀数组的实现 …………………………………………………………………41.1 基本定义 …………………………………………………………………41.2 倍增算法 …转载 2015-10-15 11:29:00 · 283 阅读 · 0 评论 -
A+B=X
点击打开链接#include#include#define MAX 1000000+10int a[MAX],b[MAX],c[MAX];int main(){ int n,flag,x,tc; int i; scanf("%d",&tc); while(tc--){ scanf("%d%d",&n,&x); flag=0原创 2015-12-10 20:55:53 · 567 阅读 · 0 评论 -
栈(运算操作)
点击打开链接#include#include#define MAX 1000000+10#define Min(a,b) a<b?a:bchar s[MAX];int stack[MAX];int n;char operater(int ch,int start,int e){ int sum=stack[start]; for(int i=start+1;i<e原创 2015-12-10 20:52:28 · 399 阅读 · 0 评论 -
最长递增子序列详解(longest increasing subsequence)
对于动态规划问题,往往存在递推解决方法,这个问题也不例外。要求长度为i的序列的Ai{a1,a2,……,ai}最长递增子序列,需要先求出序列Ai-1{a1,a2,……,ai-1}中以各元素(a1,a2,……,ai-1)作为最大元素的最长递增序列,然后把所有这些递增序列与ai比较,如果某个长度为m序列的末尾元素aj(j<i)比ai要小,则将元素ai加入这个递增子序列,得到一个新的长度为m+1的新序列,转载 2015-11-01 23:28:57 · 303 阅读 · 0 评论 -
RMQ(区间最值)
区间最值数组a的区间最值n个数组,q次询问,a[l]->a[r]最小值初态:f[j][0]=a[j];状态转移方程:f[j][i]=Min(f[j][i-1],f[j+(1#include#include#include#define MAX 1000000+10#define Max(a,b) a>b?a:b#define Min(a,b) a<b?a:bint f[原创 2015-12-10 20:46:55 · 338 阅读 · 0 评论