自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 收藏
  • 关注

原创 CCCC 天梯赛 PTA ZOJ 题目 L1 L2 L3

PTA 天梯赛题目整理并查集板子(1)朴素并查集: int p[N]; //存储每个点的祖宗节点 // 返回x的祖宗节点 int find(int x) { if (p[x] != x) p[x] = find(p[x]); return p[x]; } // 初始化,假定节点编号是1~n for (int i = 1; i <= n; i ++ ) p[i] = i; // 合并a和b所在的两个集合:

2022-04-21 19:30:32 8790 3

原创 再谈位运算

再谈位运算位运算基础:基本运算:与 : x & y只要有一个为 0 即为 0, 都为 1 为 1或: x | y只要有一个为 1 即为 1, 都为 0 为 0非 : ! x取反异或 : x ^ y加法不进位, 相同为0, 不同为1int 32位 :1: 0000000000…12: 0000000000…103: 0000000000…11补码: 一个数与 x 相加 为 0, 则这个数即为 x 的补码, 等于 x 取反 + 1,

2021-04-27 21:44:13 198 1

原创 欧拉函数快速幂扩展欧几里得算法中国剩余定理

欧拉函数快速幂扩展欧几里得算法中国剩余定理

2020-11-11 20:54:02 383 1

原创 质.约数

质数与约数质数质数的**判定** -- 试除法 :分解质因数 -- 试除法 :**线性筛法求素数**朴素筛法(埃筛) -- 优化后 :**线性筛法:**约数试除法求一个数的所有约数 :约数个数 :约数之和 :最大公约数 :质数概念 : 在大于1的整数中 , 如果只包含1和本身这两个约数 , 就被称为质数 , 或者称作素数.质数的判定 – 试除法 :时间复杂度 : O ( sqrt(n) )d | n --> n/d | n ( “|” 表示整除 )只需判断较小的那个约数 , d^2

2020-10-16 15:30:10 453 1

原创 二分图与最小生成树

二分图与最小生成树最小生成树朴素版Prim算法Kruskal算法二分图染色法匈牙利算法最小生成树最小生成树对应的问题都是无向图最小生成树算法 :Prim算法稠密图 : 朴素版Prim算法 O( n^2 ) [^代码短 一般用于稠密图]稀疏图 : 堆优化版Prim算法 O( mlog(n) ) [^不常用]Kruskal算法 O( mlog(m) ) [^一般用于稀疏图]捋清算法思路 , 弄清楚算法的流程 , 不是死记模版朴素版Prim算法集合 s 表

2020-10-14 20:30:40 1107 3

原创 各种最短路径算法

最短路

2020-10-14 19:59:14 701

原创 图 . 树 . bfs . dfs .

搜索与图论 一

2020-09-23 15:56:28 150

原创 basic datastructrue three

basic datastructrue threeHash表STL使用技巧Hash表STL使用技巧

2020-09-05 23:02:35 126

原创 basic datastructrue two

basic datastructrue twotrie树并查集堆trie树trie树 , 又称字典树 , 是一种花 快速/高效 地 存储/查找 字符串集合的数据结构结构 : 结点存放每个字符串的字母 , 从根节点往下进行存储 , 如果子节点的字母与要存储的结点的字母相同 , 则继续往下搜索 , 如果不相同 , 则另外开辟一个子节点存储该字母 .ex : 可以发现,这棵字典树用边来代表字母,而从根结点到树上某一结点的路径就代表了一个字符串。举个例子,1 -> 4 -> 8 -&gt

2020-09-04 18:13:00 119

原创 basic datastructrue one

basic datastructrue one链表与邻接表单链表栈与队列KMP链表与邻接表单链表链表分为动态链表和静态链表动态链表如下 :struct Node{ int val ; Node *next ;}但由于 在 c++ 中,在使用动态链表的情况下,每次创建一个链表就需要调用 new() 函数来创建为其创建一个空间进行存储,但是据我们所知 , c++ 中的new()函数是非常慢的, 当我们处理百万级以上的数据时,使用动态链表就会超时,注意 : 这里所说的情况仅仅只针对于算法题中,

2020-09-03 10:28:06 125

原创 basic algorithm(Three)

basic algorithm three双指针算法位运算离散化区间合并双指针算法核心思想: 将时间复杂度为O(N^2)的朴素算法优化到O(N)核心代码:for(int i = 0,j = 0;i < n;i ++ ){ while(j < i && check( (i,j) ) j ++ ; // 具体的每道题目的基本逻辑: }模版:对于一个给定的字符串 , 其中每个单词间隔1个空格,将它们分割后输出code:// 给定一个字符串 将其中的单词分割输

2020-08-30 19:01:14 190

原创 Basic Agorithm ( TWO ).

高精度算法在高精度算法中,需要用一个 string 来存储高精度数据, 然后将其倒置放到一个vector中,方便操作.至于为什么要将其倒置存放到一个vector中,原因如下:当我们做加法和乘法的时候 , 会产生进位,这个时候需要增加数字 ,而据数组的特性所知,在数组的末尾添加一个数字比在数组的开头添加一个数字要容易的多 . 所以当我们存储数字的时候 , 要把其个位存放到数组的头部 , 也就是我们所说的倒置存储.高精度加法:模版:// 大整数类加法#include <iostream

2020-08-29 12:54:37 143

原创 Basic Agorithm ( ONE ).

basic algorithm onequick_sortmerge_sortquick_sortmerge_sort

2020-08-18 15:05:36 133

转载 freopen(“in.txt“,“r“,stdin) 函数的用法

在做acm题目的过程中,我们需要在本地机器上调试。调试过程中,如果输入数据少还可以接受,但如果输入数据很庞大的话,我们就很难忍受一次又一次的重新输入和调试了。通过google,找到一种简便的方法,那就是freopen函数。使用freopen函数可以解决测试数据输入问题,避免重复输入,不失为一种简单而有效的解决方法。下面为函数的简介,详细可参见 http://www.cplusplus.com/reference/clibrary/cstdio/freopen.html函数名:freopen声明:F

2020-08-14 15:06:23 2899

空空如也

空空如也

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

TA关注的人

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