自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Everything can be done!

学习充实自己,使自己变得更加强大

  • 博客(19)
  • 收藏
  • 关注

原创 hdu 1098

FatMouse and Cheese 题意: 一个n * n的二维图,从最左上角出发,一次最多水平或者竖直的走k步,然后经过比他大的点,求加上所有经过的权之后最大的值;思路: 知道起点,但不知道终点,记忆化搜索的时候就是以这个点作为输出点,从后往前推;PS:记忆化搜索的时候一定不能在中间改变dp的值,只能在最后改;#include#inclu

2017-03-31 19:58:26 234

原创 UVA 11584

Partitioning by Palindromes题意: 在一个字符串中找到最少能组成几个回文串思路:dp[i]数组代表前i个字符组成的最少的回文串。递推式为:递推式:dp[i] = if(j+ 1 ~ i是回文)min(dp[j] + 1,dp[i]); j 判断回文的时候用一个k表示回文的中间变量,然后向两边延伸; 复杂度为(n ^ 2)#inclu

2017-03-31 14:32:46 199

原创 POJ3186

Treats for the rows题意:给一个数组,然后只能把数组两端的数取出来,然后乘以这是第几次取出的数,然后相加,问取完之后,最大的值为多少?思路:用一个二位dp数组,dp[i][j],表示的是剩下的i ~ j的这段数组,其他的数都取完了,所以当i == j 的时候就把所有的数取完了; 推出的递推式为: dp[i][j] = max(dp[i - 1][j]

2017-03-31 11:15:19 326

原创 LCA 学习

学习了LCA的两种解法:用RMQ 和 trajan离线解法现讲一下离线解法:个人觉得这个解法就是从根节点开始DFS,然后到达底部之后再回溯,回溯的时候在把一个一个的点加入并查集,这样的话保证的是在找到两个点之前不会把他们的lca的祖先压入并查集,至于到底是怎么回溯的,引用:       0       |       1

2017-03-29 16:03:06 358

转载 线段树的区间更新

先介绍一下思想:转载自:http://blog.csdn.net/acceptedxukai/article/details/6933446感觉这个大佬说的思想很不错:给你N个数,Q个操作,操作有两种,‘Q a b ’是询问a~b这段数的和,‘C a b c’是把a~b这段数都加上c。需要用到线段树的,update:成段增减,query:区间求和介绍Lazy思想

2017-03-26 10:59:53 319

原创 线段树学习

线段树的根节点从1开始。它的左子树的编号是2 * n,右子树为2* n + 1;经典例题:hdu1166 敌兵布阵#includeusing namespace std;const int maxn = 50000 + 10;typedef long long ll;struct Tree{ int l; int r; ll sum;}tree[maxn * 4];

2017-03-17 18:42:17 201

转载 set--常见成员函数及基本用法

转载自:http://www.cnblogs.com/zyxStar/p/4542835.htmlc++ stl集合set介绍 c++ stl集合(Set)是一种包含已排序对象的关联容器。set/multiset会根据待定的排序准则,自动将元素排序。两者不同在于前者不允许元素重复,而后者允许。 c++ stl集合set介绍   c++ stl集合(Set)是

2017-03-12 10:49:41 509

原创 排列组合初步学习

排列:从N个不同物体中不重复取出r个做排列:A(n,r):int mya(int n,int r){ int sum = 1; for(int i = n; i >= r; i --) sum *= i; return sum;}组合:从n个不同物体中不重复取出r个组合:C(n,r),这个模板不错:int myc(int n,int c){

2017-03-11 16:44:03 1138

原创 hdu5878 dfs

http://acm.hdu.edu.cn/showproblem.php?pid=5878题意: 对于一个n,找到一个的数刚好大于等于n数,输出;数据范围10e9;dfs打表,为了避免出现2 * 2 * 3 * 2      2 * 2 * 2 * 3重复的情况,打表的时候注意技巧之后二分;#include #include #include #includ

2017-03-11 11:45:16 281

转载 poj1811(pollard-rho求一个大数(64位)的最小因子)

poj 1811  Prime Test题意:给定一个64位整数,问是否为质数,如果不是,则输出其最小因子。分析:经典题!!数学题miller_rabbin素数判定。若不是,则pollard_rho分解质因子,找到最小即可。Miller-rabinMiller-rabin算法是一个用来快速判断一个正整数是否为素数的

2017-03-09 19:24:58 1988

原创 Miller-rabin判定素数

转载自http://www.cnblogs.com/vongang/archive/2012/03/15/2398626.html·Wilson 定理  对于给定的正整数 n,判定 n 是一个素数的充要条件是           (n-1)!≡ -1(mod n)下面开始说Miller-Rabin测试:  费马小定理:对于素数p和任意整数a,有ap ≡ a(mod p)

2017-03-09 18:43:09 374

原创 梅森素数的判定(Lucas-Lehmer判定法 和 miller - Rabin 判定法)

Mp = 2^p-1 且 p是素数,称为梅森数,若Mp是素数则称为梅森素数。Lucas-Lehmer判定法 判定一个数是否为梅森素数 效率足够高,如果题目特意为梅森素数设计,会卡复杂度,那么套用此方法即可。算法复杂度为O(p^3)。关于卢卡斯-莱默算法参考http://blog.csdn.net/cFarmerReally/article/details/52153410?

2017-03-09 18:42:21 4402

转载 C语言 全局变量和局部变量的大小限制

文章作者:姜南(Slyar) 文章来源:Slyar Home (www.slyar.com) 转载请注明,谢谢合作。下午做最长公共子序列的时候遇到的问题,问了felix后恍然大悟...看代码#include int main(){int a[1000000];//局部变量return 0;}编译运行后发现溢出错误。#include int a[1

2017-03-08 15:13:19 797

转载 c++ 的用 new 和delete 进行二维数组动态内存的创建和删除

1.数组指针 A (*ga)[n] = new A[m][n]; ... delete []ga;2.二级指针 A** ga = new A*[m]; for(int i = 0; i < m; i++) ga[i] = new A[n]; ... for(int i = 0; i < m; i++)

2017-03-06 15:02:22 3572

原创 初等数论之算术基本定理

定理: 每个大于1的正整数n都可以被唯一地表示成素数的乘积; n的分解式n =  p1 ^ a1 * p2 ^ a2 * p3 ^ a3 ……* pk ^ ak;其中p1,p2,……pk是素数,p1 性质如下:         1. d(n) = (a1 + 1) * (a2 + 1) * (a3 + 1) *……*(ak + 1) ,为n的正因子的数目;         2.$(n)

2017-03-05 20:35:09 1086

原创 uva 548 (二叉树)(不知数的多少进行数的一整行输入)

https://vjudge.net/problem/19105/origin题意:给出一个中序遍历和一个后序遍历,构建树,然后求出从根节点到哪个叶子节点的值最小;思路: 题并不难,主要是不知道数的数目进行数的一整行输入;实现数的一整行输入:代码可以写成:int ReadLine(T* data_array) { string str_line; i

2017-03-05 15:53:25 287

原创 hdu3999二叉排序树

https://vjudge.net/problem/22959/origin题意及思路: 构建二叉排序树 并输出它的前序遍历;#include #include #include#include #include #include #includeusing namespace std;typedef long long ll;#define INF 0

2017-03-05 14:49:27 885

原创 C++的一些输入有关函数

学习C++的同学可能都会遇到一个getline()函数,譬如在C++premer中,标准string类型第二小节就是“用getline读取整行文本”。书上给的程序如下:int main(){    string line:    while(getline(cin,line))    cout    return 0;}大家会发现运行时怎么也跳不出循环,甚至会发生各

2017-03-05 10:01:00 270

原创 搜索题解

Prime Path 题意: 求一个素数 a 变换到 一个素数b 的最小次数变换规则为:变换数的一个数位,然后使得变换后的数为素数;思路: 这个能想到用bfs真是神奇,先把一个数的数位用一个数组记录,然后对其中的一个数位进行更改,然后判断更改后的数是否为素数,是的话入队;          因为一次只能对一个数位进行操作,所以每次进行更改位上的数的时候记录一下,之后

2017-03-02 19:54:03 201

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除