模板
丶Sj
这个作者很懒,什么都没留下…
展开
-
读入读出优化
有些题目追求高性能(比如说Θ(nlogn)) 这个时候根据情况使用线段树、树状数组、记忆化搜索或者搜索剪枝很重要,但是不要忘记快读 一般来说scanf和printf的速度已经很令人满意了,虽说比不上pascal里面的read… 在读入大量数据的时,比如10^7个int型的整数,scanf也显得力不从心 ——快读闪亮登场—— getchar()的速度很快了吧,那就用它一个个的读取字符,再把他原创 2017-12-21 22:37:18 · 192 阅读 · 0 评论 -
算法模板之堆-优先队列
堆的定义 堆结构是一种数组对象,可以被视为一颗完全二叉树。 树中的每个节点与数组中存放该节点中值的那个元素相对应。 由上图不难看出 Father(i)=⌊i/2⌋Father(i)=⌊i/2⌋ leftChild(i)=i∗2leftChild(i)=i*2 rightChild(i)=i∗2+1rightChild(i)=i*2+1 当然也可以用位运算来加快速度 Fathe原创 2017-12-09 19:59:30 · 257 阅读 · 0 评论 -
第一个模板
人生中第一次写模板,值得纪念。 一个没有什么用的模板——实现四个数的两两相加#includeusing namespace std;template typename T>//所有用到了模板的函数、结构体、类之前都要加上这一句struct Point{ T x, y; Point(T x=0, T y=0) { this->x = x; this-原创 2018-01-26 12:31:23 · 276 阅读 · 0 评论 -
Openjudge 7940:查找最接近的元素
题目描述在一个非降序列中,查找与给定值最接近的元素。输入第一行包含一个整数n,为非降序列长度。1 第二行包含n个整数,为非降序列各元素。所有元素的大小均在0-1,000,000,000之间。 第三行包含一个整数m,为要询问的给定值个数。1 接下来m行,每行一个整数,为要询问最接近元素的给定值。所有给定值的大小均在0-1,000,000,000之间。输出m行,每原创 2018-01-09 22:31:05 · 1870 阅读 · 0 评论 -
洛谷 p1601 A+B Promblem(高精)
来一发重载运算符的高精度,重载运算符的练手题。重载运算符的高精度看起来代码长,但是很实用,可以支持sort、map等操作,特别特别方便。用的是vector,其实不比数组慢多少,而且动态数组不用根据内存手动调数组大小。Ac代码:#include#include#include#include#include #includeusing namespace std;原创 2018-02-02 20:51:22 · 361 阅读 · 0 评论 -
关于lowbit
简单介绍lowbit是二进制中比较常用的一个函数,它的作用是求 一个数(二进制下)从后向前数直到遇到第一个’1’时的数 见下表: 十进制 二进制 lowbit 1 1 1 2 10 2 3 11 1 4 100 4 5 101 1 6 110 2 7 111 ...原创 2018-03-17 15:15:13 · 726 阅读 · 0 评论 -
欧几里得算法
设:gcd(a, b)=kgcd(a, b)=kgcd(a, \ b) = k a=kc, b=kd(c∈N∗,d∈N∗)a=kc, b=kd(c∈N∗,d∈N∗)a = kc,\ b = kd(c∈N^*, d∈N^*) ∴c、d互质(c、d的公约数只有1)且c>d∴c、d互质(c、d的公约数只有1)且c>d∴c、d互质(c、d的公约数只有...原创 2018-05-11 10:14:13 · 397 阅读 · 0 评论