自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

xffyjq的博客

信息学奥赛交流分享

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

原创 poj1331(浅谈进制转换)

题意:给出三个数a、b、c,求a*b=c在哪个进制下成立。进制转换,显然是一个非常简单的问题。我们仅需要掌握n进制-10进制 和 10进制-n进制转换即可以由此完成任意进制数的转换了。今天主要讲的是进制转换的stl实现方法——strtol函数。以下引用自百度。longint strtol(constchar *nptr,char**endptr,int

2016-09-28 21:08:22 657

原创 poj1811(大质数判定与大数分解的模板题)

题目大意:输入一个数(经过两篇博客详解,相信这道题目完成应该没有问题了。下面附上代码。#include#include#include#includeusing namespace std;typedef long long LL;LL ans;LL modmul(LL a,LL b,LL mod){ LL ret=0; for(;b;b>>=1,a=(a+a)%mod

2016-09-28 20:56:51 565

原创 大整数分解——Pollard Rho算法

延续上一篇,这次来讲一讲大整数分解算法的应用。要解决的问题很简单,对一个整数进行分解质因数。首先还是效率非常低的暴力算法,相信大家都会,不多提。和上次一样,当数达到非常大的时候,分解将变得非常困难。于是这次又带来一个提升分解速度的“非完美”算法。之所以打引号,是因为这次不完美的不是结果,而是时间效率。Pollard Rho算法分解一个数n的过程大体上是这样子的:1、找到一个数p,使得p|np|n,将

2016-09-28 20:04:38 8907

原创 素数判定——Miller Rabin 算法

最近复习备战NOIP,开始回顾NOIP基础知识(才发现这么多不会= =b)首先过关的是基础数论知识,从素数判定开始学起。谈到素数判定,首先想到的两种便是暴力判定与筛法,实现非常简单,在此不提。但在分解大质数时,由于数字过大,使得暴力判定会超时,筛法会超空间(可使用有技巧的限制空间筛法,但数字过大仍然过不了)这时,我们就要引入非完美大质数判定算法——Miller Rabin算法。下面一段引自sunsh

2016-09-27 21:17:18 707

原创 poj2761(静态区间第k大,treap)

题意:给你一个序列和m个区间[l,r],每次输出每个区间中第k大的值为多少。区间之间有重叠但没有完全包含。解析:由于区间没有完全包含。所以先将区间按左端点排序,每次查询一个新区间时将其与上一个区间重叠部分保留,其余删去,在加入自己新的部分,最后查询第k大值。这是一道考察treap应用的好题。#include#include#include#includeusing namespac

2016-08-14 22:27:04 450

原创 平衡树之treap

之前的博客中简单地阐述了二叉查找树的概念及简单应用,并介绍了平衡树。接下来我们便开始研究平衡树中实现较为简单的一种——treap的具体写法。一、treap简介介绍treap之前,先允许我来介绍一下笛卡尔树。这种树有两个值,如果只看第一个值(以下称为第一关键字),其满足二叉查找树的性质,而只看第二个值(以下称为第二关键字),其满足堆的性质(即某节点所有子树值比其大或小)。顾名思义,treap=tree

2016-08-14 20:59:08 510

原创 二叉查找树与平衡树简介

在信息奥赛中,我们常常会遇到序列中的元素查找问题。有时候二分查找就能满足需要,但是当题目附加插入与删除操作时,二分查找便显得不那么灵活。这时候,我们就要用到二叉查找树(又称二叉排序树)来进行查找。一、二叉查找树二叉查找树的主要特征为:对于每一个节点:(1)若其左子树不空,则其左子树上所有结点的值均小于该结点的值;(2)若其右子树不空,则其右子树上所有结点的值均大于该结点的值;(有时可变为小于等于或大

2016-08-14 14:51:06 1257 1

原创 位运算入门应用以及技巧

位运算入门应用以及技巧位运算是信息奥赛中重要的一部分,由于位运算的速度比一般运算快,掌握了位运算,就能够在程序编写时更加灵活,提高程序效率,对解题有十分重要的帮助。位运算的所有操作都是建立在二进制位上的,所以在学习位运算之前,请保证熟悉了二进制的基本运算法则以及基本的逻辑与、或、非运算。一、位运算基本操作1、左移操作 <<左移操作可以将二进制数a的每个数位均进行左移,并在移动后右边空出来的数位补

2016-08-05 22:51:19 1398

转载 Vim编辑器精通

vim的学习曲线相当的大(参看各种文本编辑器的学习曲线),所以,如果你一开始看到的是一大堆VIM的命令分类,你一定会对这个编辑器失去兴趣的。下面的文章翻译自《Learn Vim Progressively》,我觉得这是给新手最好的VIM的升级教程了,没有列举所有的命令,只是列举了那些最有用的命令。非常不错。——————————正文开始——————————你想以最快的速度学习人类

2016-08-05 20:41:32 449

空空如也

空空如也

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

TA关注的人

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