摘要: 傅里叶变换:http://blog.csdn.net/l494926429/article/details/51818012 阅读全文
posted @ 2018-02-23 15:19 殇雪 阅读(285) 评论(0) 推荐(0) 编辑
摘要: unsigned int 0~4294967295int 2147483648~2147483647unsigned long 0~4294967295long 2147483648~2147483647long long的最大值:9223372036854775807——9*1e18long lo... 阅读全文
posted @ 2015-08-31 22:56 殇雪 阅读(7233) 评论(9) 推荐(0) 编辑
摘要: #include const double eps = 1e-8; inline int dcmp(double x) { return x eps; } struct Point; using Vector = Point; using Polygon = std::vector; struct Point { double x,y; Point() {}... 阅读全文
posted @ 2016-07-15 10:04 殇雪 阅读(341) 评论(0) 推荐(0) 编辑
摘要: set cin nu ts=4 sw=4 sts=4 et acd noswapfile nobackupset bs=eol,start,indentsyntax on map <F4> :!g++ -std=c++11 -O2 % -o %<<cr>map <F5> :!%<<cr> map < 阅读全文
posted @ 2016-03-27 19:32 殇雪 阅读(335) 评论(0) 推荐(0) 编辑
摘要: 首先要知道如何求逆波兰式(后缀表达式): 表达式的表示形式有中缀、前缀和后缀3中形式。中缀表达式按操作符的优先级进行计算(后面代码实现只包括+、-、*、\,小括号),即数学运算。 后缀表达式中只有操作数和操作符。操作符在两个操作数之后。它的计算规则非常简单,严格按照从左到右的次序依次执行每一个操作... 阅读全文
posted @ 2015-10-14 18:17 殇雪 阅读(753) 评论(0) 推荐(0) 编辑
摘要: 后缀数组指的是讲某个字符串的所有后缀按字典序排序后得到的数组。我们用sa[i]表示在字符串里排行第i个的字符串(按升序排序,及从小到大)是从第sa[i]个开始。用rk[i]表示第i位开始的后缀在所有后缀里面排第几。用lcp[i]表示从sa[i]开始的后缀和从sa[i + 1]开始的后缀的最长公共前缀... 阅读全文
posted @ 2015-10-08 18:02 殇雪 阅读(415) 评论(0) 推荐(0) 编辑
摘要: 大数模板(进制优化):/* 高精度模版*/#include #include #include #include #include #include using namespace std;const int numlen = 2005; // 需要的位数const int numbit = ... 阅读全文
posted @ 2015-10-08 18:00 殇雪 阅读(268) 评论(0) 推荐(0) 编辑
摘要: LCA,全称为Lowest Common Ancestor, 即最近公共祖先。这是对于有根树而言的,两个节点u, v的公共祖先中距离最近的那个被称为最近公共祖先(这解释。。真通俗。。。)我们来看个图: 4和7的LCA是2,5和6的LCA是1,2和5的LCA是2。 最笨的实现方法就是; 对于同一深度的 阅读全文
posted @ 2015-10-07 22:02 殇雪 阅读(1874) 评论(0) 推荐(8) 编辑
摘要: 2038: [2009国家集训队]小Z的袜子(hose)Time Limit:20 SecMemory Limit:259 MBSubmit:4471Solved:2049[Submit][Status][Discuss]Description作为一个生活散漫的人,小Z每天早上都要耗费很久从一堆五颜... 阅读全文
posted @ 2015-10-02 14:42 殇雪 阅读(518) 评论(1) 推荐(0) 编辑
摘要: #include #include #include using namespace std;typedef long long ll;ll mod_pow(ll x, ll n, ll p){ ll res = 1; while(n){ if(n & 1) res =re... 阅读全文
posted @ 2015-09-25 16:12 殇雪 阅读(844) 评论(0) 推荐(0) 编辑
摘要: hash函数对大家来说不陌生吧 ? 而这次我们就用hash函数来实现字符串匹配。 首先我们会想一下二进制数。 对于任意一个二进制数,我们将它化为10进制的数的方法如下(以二进制数1101101为例): hash用的也是一样的原理,为每一个前缀(也可以后缀,笔者习惯1 base,所以喜欢用前缀来计算, 阅读全文
posted @ 2015-09-14 13:41 殇雪 阅读(24457) 评论(14) 推荐(9) 编辑
摘要: 主席树这个概念应该不陌生吧!恩?不会, 戳这里。主席树(函数式线段树)用的是函数思想,一个节点开数组用来保存自己的左右节点,这样节省许多不必要的空间,还可以保存许多历史状态。而这里我们用的是主席树的函数思想来实现。上题:http://acm.hdu.edu.cn/showproblem.php?pi... 阅读全文
posted @ 2015-09-13 17:20 殇雪 阅读(1173) 评论(0) 推荐(2) 编辑
摘要: 我们首先来看个线性同余方程:如果对于方程 ax = b(a不为0),由于a存在倒数,因此很容易求解。如果在mod m的运算下,也有满足这样a的倒数一样的数存在的话,方程就有解了。而这个解x就叫做a关于m的逆元,记做或是inv(a)。如果能求出逆元,那么就有x = inv(a) * ax = inv(... 阅读全文
posted @ 2015-09-09 14:58 殇雪 阅读(1623) 评论(5) 推荐(1) 编辑
摘要: 相信大家对欧几里得算法,即辗转相除法不陌生吧。代码如下:int gcd(int a, int b){ return !b ? gcd(b, a % b) : a;}而扩展欧几里得算法,顾名思义就是对欧几里得算法的扩展。切入正题:首先我们来看一个问题:求整数x, y使得ax + by = 1, ... 阅读全文
posted @ 2015-09-08 21:14 殇雪 阅读(7547) 评论(2) 推荐(4) 编辑
摘要: 欧拉函数Euler(x)Euler(n)表示1-n之间与n互质的个数,例如Euler(4) = 2,其中1和3与4互质。(数论里面规定Euler(1) = 1,并且1与任何数互质)。欧拉函数的通项表达式为:还有其一些推论:当n >= 1时,1 - n中与n互质的整数和为nEuler(n)/2;那欧拉... 阅读全文
posted @ 2015-09-07 21:23 殇雪 阅读(700) 评论(0) 推荐(0) 编辑
摘要: 这是2015年最后一场多校的dp题,当时只怪自己基础太差,想了1个多小时才想出来,哎,9月份好好巩固基础,为区域赛做准备。题目传送门题目的意思是给你n元钱,m类糖果,每类糖果分别有p, a, b, p表示单价,假设付了w*p元,那么他能获得a*w + b个糖果。求最大的糖果数。当时一看到这题,觉得是... 阅读全文
posted @ 2015-09-05 14:40 殇雪 阅读(811) 评论(0) 推荐(0) 编辑