自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 数论(第一部分)

质数 定义 大于等于2的整数中只有1和它本身的因数的数称之为质数(素数)。 试除法求质数: 由定义的方法 时间复杂度o(n) for (int i = 2;i <= n; i ++) if(n%2==0) return ture; else return false; 因数都是成对出现的,即i*j=n;i和j都是n的因数。 所以必定存在n>m或者m>n的情况,所以枚举的时候我们从小到大枚举只需要枚举n/i就可以了,最大枚举到根号n的情况。 时间复杂度o(根号n) for (int i

2021-08-07 20:23:36 139

原创 离散化(区间和)

离散化和哈希表 离散化

2021-07-31 15:29:40 218 1

原创 01 背包问题详解

01 问题我们可以知道是为了找到在选择n个物品以内的情况下体积不超过V的最大价值的选法。 为了表示在选择n个物品以内的情况下体积不超过V的最大价值的选法,我们开了一个数组来表示在n个物品内V体积内的最大价值f[ ][ ]; 则f[i][j]表示在选择i个物品内j体积内的最大的价值。 然后用递推来确定选择不超过n个物品体积不超过V的情况下的f[ ][ ]的最大值 #include <iostream> using namespace std; const int N=1010; int v.

2021-07-22 15:03:13 129

原创 DFS和BFS的应用

题目要求是每一行每一对角线都只有一个皇后,在每行和对角线都开一个布尔数组表示数组下标所代表的的行和对角线是否已经没使用过 bool col[N],dg[N],udg[N];//dg表示斜率为一的对角线,udg相反。 对角线 dg[x+i],反对角线udg[n-x+i]中的下标 x+i和 n−x+i 表示的是截距 反对角线 y=x+b 截距 b=y−x,因为我们要把 b 当做数组下标来用,显然 b 不能是负的,所以我们加上 +n (实际上+n+4,+2n都行),来保证是结果是正的,即 y - x + n..

2021-07-18 09:06:50 181

原创 并查集的基础思想和题目

南昌理工学院acm集训 acwing 836 合并集合 一共有 n 个数,编号是 1∼n,最开始每个数各自在一个集合中。 现在要进行 m 个操作,操作共有两种: M a b,将编号为 a 和 b 的两个数所在的集合合并,如果两个数已经在同一个集合中,则忽略这个操作; Q a b,询问编号为 a 和 b 的两个数是否在同一个集合中; 在初始化是我们建立一个数组代表每一个元素的所隶属的集合 数组的下标代表元素,数组的内容代表元素所在的集合的根节点,通过根节点的判断来判断两个元素和是否是一个集合内部。 for (

2021-07-10 17:55:46 127 1

空空如也

空空如也

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

TA关注的人

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