模版
Apro1066
其他我都不想聆听 唯有我的声响除外
展开
-
大整数类模版
#include<string>#include<iostream>#include<iosfwd>#include<cmath>#include<cstring>#include<stdlib.h>#include<stdio.h>#include<cstring>#原创 2018-08-19 20:41:36 · 292 阅读 · 7 评论 -
[洛谷]P3368 【模板】树状数组 2 (#树状数组+差分)
题目描述如题,已知一个数列,你需要进行下面两种操作:1.将某区间每一个数数加上x2.求出某一个数的值输入格式第一行包含两个整数N、M,分别表示该数列数字的个数和操作的总个数。第二行包含N个用空格分隔的整数,其中第i个数字表示数列第i项的初始值。接下来M行每行包含2或4个整数,表示一个操作,具体如下:操作1: 格式:1 x y k 含义:将区间[x,y]内每个数加上k...原创 2019-08-09 15:42:17 · 315 阅读 · 0 评论 -
[洛谷]P3372 【模板】线段树 1 (#线段树)
题目描述如题,已知一个数列,你需要进行下面两种操作:1.将某区间每一个数加上x2.求出某区间每一个数的和输入输出格式输入格式:第一行包含两个整数N、M,分别表示该数列数字的个数和操作的总个数。第二行包含N个用空格分隔的整数,其中第i个数字表示数列第i项的初始值。接下来M行每行包含3或4个整数,表示一个操作,具体如下:操作1: 格式:1 x y k 含义:将区间[...原创 2019-07-16 20:15:45 · 375 阅读 · 0 评论 -
[洛谷]P3378 【模板】堆
题目描述如题,初始小根堆为空,我们需要支持以下3种操作:操作1: 1 x 表示将x插入到堆中操作2: 2 输出该小根堆内的最小数操作3: 3 删除该小根堆内的最小数输入输出格式输入格式:第一行包含一个整数N,表示操作的个数接下来N行,每行包含1个或2个正整数,表示三种操作,格式如下:操作1: 1 x操作2: 2操作3: 3输出格式:包含若干行正整...原创 2019-07-18 21:05:26 · 209 阅读 · 0 评论 -
[洛谷]P3388 【模板】割点(割顶) (#图论-Tarjan求割点)
题目背景割点题目描述给出一个n个点,m条边的无向图,求图的割点。输入输出格式输入格式:第一行输入n,m下面mm行每行输入x,yx,y表示xx到yy有一条边输出格:第一行输出割点个数第二行按照节点编号从小到大输出节点,用空格隔开输入输出样例输入样例#16 71 21 31 42 53 54 55 6输出样例#11 5...原创 2019-02-11 16:54:34 · 275 阅读 · 0 评论 -
[洛谷]P3366 【模板】最小生成树 (#图论-最小生成树)
题目描述如题,给出一个无向图,求出最小生成树,如果该图不连通,则输出orz输入输出格式输入格式:第一行包含两个整数N、M,表示该图共有N个结点和M条无向边。(N<=5000,M<=200000)接下来M行每行包含三个整数Xi、Yi、Zi,表示有一条长度为Zi的无向边连接结点Xi、Yi输出格式:输出包含一个数,即最小生成树的各边的长度之和;如果该图不连通则输出...原创 2019-01-29 22:19:49 · 280 阅读 · 0 评论 -
[洛谷]P3367 【模板】并查集 (#图论-并查集)
题目描述如题,现在有一个并查集,你需要完成合并和查询操作。输入输出格式输入格式:第一行包含两个整数N、M,表示共有N个元素和M个操作。接下来M行,每行包含三个整数Zi、Xi、Yi当Zi=1时,将Xi与Yi所在的集合合并当Zi=2时,输出Xi与Yi是否在同一集合内,是的话输出Y;否则话输出N输出格式:如上对于每一个Zi=2的操作,都有一行输出,每行包含一个大写字母...原创 2019-01-29 22:35:49 · 218 阅读 · 0 评论 -
[洛谷]P3374 【模板】树状数组 1 (#树状数组)
题目描述如题,已知一个数列,你需要进行下面两种操作:1.将某一个数加上x2.求出某区间每一个数的和输入输出格式输入格式:第一行包含两个整数N、M,分别表示该数列数字的个数和操作的总个数。第二行包含N个用空格分隔的整数,其中第i个数字表示数列第i项的初始值。接下来M行每行包含3个整数,表示一个操作,具体如下:操作1: 格式:1 x k 含义:将第x个数加上k操...原创 2019-02-07 16:28:22 · 210 阅读 · 0 评论 -
A.pro读算法の11:最短路径之Dijkstra算法
此文是献给OIer看的。讲的东西比较基础(其实我理解Dijkstra花了很长时间)。NOIP2018结束约有1个月了,但是我们仍要继续前进,为NOIP2019做准备。本节学习Dijkstra的算法思想和实现,以及优先队列和堆优化。线段树也可以做到优化,甚至可能还更快,但是我太弱了不会。。好了,本蒟蒻A.pro今天给大家带来的是----A.pro读算法の11:最短路径之Dijkstra算法。...原创 2018-12-11 13:29:56 · 547 阅读 · 0 评论 -
A.pro读算法の8:快速搞定图的遍历
与其他数据结构一样,图也需要进行遍历操作,来访问各个数据点,以及后续对顶点和边进行操作。相对于树来说,图的结构更为复杂。目录1.1 概述1.2 图的存储结构1.3 深度优先遍历[2018.10.01完工]1.4 广度优先遍历[2018.10.11完工]大部分灵感来与《啊哈算法》1.1 概述先介绍一下图。图(graph)是数据结构和算法学中最强大的框架之一(或许没...原创 2018-09-23 00:15:11 · 666 阅读 · 2 评论 -
[洛谷]P1226 【模板】快速幂||取余运算 (#数学 -1.7)
题目描述输入b,p,k的值,求b^p mod k的值。其中b,p,k*k为长整型数。输入输出格式输入格式:三个整数b,p,k.输出格式:输出“b^p mod k=s”s为运算结果输入输出样例输入样例#12 10 9输出样例#12^10 mod 9=7思路模版题。#include <stdio.h>#include &...原创 2018-08-23 11:46:36 · 240 阅读 · 0 评论 -
A.pro读算法の7:快速搞定bfs算法
bfs算法,即广度优先算法(Breadth First Search)。和dfs类似的,同样可以遍历一张图。它并不考虑结果的可能位置,彻底地搜索整张图,直到找到结果为止。和dfs一样,这是一种蛮力的解决方案。比如,你的眼镜掉了,你趴在地上找。你会先伸手找离你最近的地方,如果没有,再向远处寻找...和深搜的区别是:同样是对四周进行扩展,只是bfs是所有能扩展的点进入队列,不像深搜,不到最...原创 2018-08-17 18:27:25 · 607 阅读 · 6 评论 -
A.pro读算法の6:快速搞定dfs算法
A.pro不喜欢说那么长的概念和定义,因为那实在是太烧脑了,像我这种蒟蒻看个5分钟就该滚回去睡觉了。那么,我们需要在最短的时间内搞定这个女装山脉(雾)dfs。dfs算法,即深度优先算法(Depth First Search)。理解深搜的重要关键点是在于解决“现在该怎么做”。至于“接下来该怎么做”和“现在该怎么做”是一样的。先举个例子。全排列问题题目描述输出自然数1到n所有不重复...原创 2018-08-08 21:58:49 · 2469 阅读 · 6 评论 -
快速幂操作
1.1 概论快速幂顾名思义,就是快速算某个数的多少次幂。其时间复杂度为O(log₂N),与朴素的O(N)和一般求法的O(N*N)相比效率有了极大的提高。1.2 原理以下以求a的b次方来介绍 [1] 把b转换成二进制数。该二进制数第i位的权为 例如11的二进制是101111 = 2³×1 + 2²×0 + 2¹×1 + 2º×1因此,我们将a¹¹转化为算 ...原创 2018-07-17 12:28:57 · 447 阅读 · 0 评论 -
A.pro读算法の3:二分查找及模板
二分查找也称折半查找(Binary Search),它是一种效率较高的查找方法。但是,折半查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列。【算法原理】 用给定值k先与中间结点的关键字比较,中间结点把线形表分成两个子表,若相等则查找成功;若不相等,再根据k与该中间结点关键字的比较结果确定下一步查找哪个子表,这样递归进行,直到查找到或查找结束发现表中没有这样的结点。...原创 2018-07-24 15:13:48 · 259 阅读 · 0 评论 -
连通块问题
判断一个二位数组有几个连通块,八领域都表示连通。用@表示连通块。输入n,m,表示地图大小,接下来输入地图,问这个由@组成的连通块有多少个。样例输入:10 12@........@...@@@.....@@@....@@...@@..........@@..........@....@......@...@.@.....@@.@.@.@.....@..@.@........原创 2018-08-17 14:00:28 · 3504 阅读 · 0 评论 -
[洛谷]P3371 【模板】单源最短路径(弱化版) (#最短路)
题目背景本题测试数据为随机数据,在考试中可能会出现构造数据让SPFA不通过,如有需要请移步P4779。题目描述如题,给出一个有向图,请输出从某一点出发到所有点的最短路径长度。输入格式第一行包含三个整数N、M、S,分别表示点的个数、有向边的个数、出发点的编号。接下来M行每行包含三个整数Fi、Gi、Wi,分别表示第i条有向边的出发点、目标点和长度。输出格式一行,包含N...原创 2019-08-23 21:21:21 · 230 阅读 · 0 评论