自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 2020 CCPC 威海 G - Caesar Cipher (线段树 + Hash)

题意 :给定一个数组 ,范围为 [0,65536),有以下两种操作:给出 x , y 把 [x , y] 内的每个数 + 1 同时对 65536 取模。 给出 x,y,L , 查询区间 [x , x + L - 1] 和区间 [y , y + L - 1]是否完全相同。思路 :思路就是 线段树维护 hash ,有区间修改和查询 判断两段 hash值是否相同就可以了。 首先考虑一下区间合并(也就是pushup),线段树的每个节点表示这一段的 hash 值,在区间合并的操作时 大区间的 has

2022-02-18 08:55:35 188

原创 2020CCPC绵阳站

D - Defuse the Bombs题意:有n个炸弹,每个炸弹都有自己的时间,有三个步骤:1. 选择一个炸弹时间加一。2. 让所有炸弹的时间减一。3. 当其中有一个炸弹的时间变为负数,那么所有炸弹全部爆炸,否则返回步骤一。我们需要求出最多执行步骤一的次数。思路:考虑贪心操作。即每次都选取最小爆炸时间的炸弹,对其爆炸时间进行延长。可以发现对于每个操作次数num,对于初始爆炸时间序列a[i]统计负差值和。这个负差值和即为对于当前操作次数,如果保证所有炸弹不爆炸所需要的最小操作

2022-01-14 23:54:51 373

原创 2021-08-25 四期集训第四天-----Bellman-ford SPFA

Bellman_ford算法dijkstra 为什么不能解决解决负权边最短路问题加入每条边去松弛每个点到起点的距离dist[b] = min(dist[b], backup[a] + w);为什么需要back[a]数组为了避免如下的串联情况, 在边数限制为一条的情况下,节点3的距离应该是3,但是由于串联情况,利用本轮更新的节点2更新了节点3的距离,所以现在节点3的距离是2。正确做法是用上轮节点2更新的距离--无穷大,来更新节点3, 再取最小值,所以节点3离起..

2021-08-25 21:52:31 159

原创 2021-08-24四期集训第三天-----Dijkstra算法

最短路问题Dijkstra算法Dijkstra 的整体思路比较清晰 即进行n(n为n的个数)次迭代去确定每个点到起点的最小值 最后输出的终点的即为我们要找的最短路的距离所以按照这个思路除了存储图外我们还需要存储两个量dis[n] //用于存储每个点到起点的最短距离vis[n] //用于在更新最短距离时 判断当前的点的最短距离是否确定 是否需要更新每次迭代的过程中我们都先找到当前未确定的最短距离的点中距离最短的点 (至于为什么是这样那么这就涉及到Dijkstra算法的具体.

2021-08-24 22:00:04 77

原创 四期集训第二天-----补题

https://vjudge.net/contest/454885#problem/BHDU - 7067题意:n ∗ m 的棋盘,每个位置 1 个数字,初始 ( 1 , 1 )R 和 K 轮流操作,R可以将棋子移动到同一行的任何位置(可以原位置),K 可以将棋子移动到同一列的任何位置游戏进行 k 轮,也可以在每一轮操作前 R 或 K 选择结束游戏,结束的位置的数值为最终价值R 想最大化价值,K 反之两人都是最优策略,求最终价值思路:显然是一个博弈题...

2021-08-24 08:11:42 80

原创 2021-08-22四期集训第一天

1

2021-08-22 23:22:34 97

原创 2021-08-17三期集训第九天----四种求逆元的方法

简述逆元逆元(Inverse element)就是在mod意义下,不能直接除以一个数,而要乘以它的逆元。 比如a∗b≡1(mod p),那么a,b互为模n意义下的逆元,比如你要算x/a,就可以改成x*b%p观察a∗b≡1(mod p),变形为a∗b+k∗p=1,就可以用扩展欧几里得算法求a了,同时这里也说明了a和p只有在互素的情况下才存在逆元。注意在下面所有的算法中,最好先把除数取个模再运算。方法一:扩展欧几里得算法a∗b≡1(mod p) ...

2021-08-17 22:43:29 254

原创 三期集训第八天---求组合数

求组合数有四种方法从 n 个不同元素中取出 m 个元素的所有组合的数目公式性质(1) C ( n , m ) = C ( n , n - m ) = C ( n - 1 , m - 1 ) + C ( n - 1 , m ) (2)实现方法1(杨辉三角)杨辉三角第 i 行第 j 列对应 C ( i ,j ) 的结果 用动态规划求从 n 个元素中取出 m 个元素的所有组合个数 c [ i ] [ j ] :在 i 个元素中选 j 个 对于当前状态 i j ,可以由两种情...

2021-08-16 23:15:00 70

原创 三期集训第六天------高斯消元

1.概述高斯消元法(Gaussian elimination)是求解线性方阵组的一种算法,它也可用来求矩阵的秩,以及求可逆方阵的逆矩阵。它通过逐步消除未知数来将原始线性系统转化为另一个更简单的等价的系统。它的实质是通过初等行变化(Elementary row operations),将线性方程组的增广矩阵转化为行阶梯矩阵(row echelon form).2.原理已知线性方程组: ...

2021-08-15 00:32:02 90

原创 三期集训第五天-------扩展欧几里得算法

今天学了扩展欧几里得算法推导过程代码//扩展欧几里得#include<iostream>using namespace std;int exgcd(int a, int b, int& x, int& y) { if (!b) { x = 1, y = 0; return a; } int d = exgcd(b, a % b, y, x); y -= (a / b) * x; return d;...

2021-08-13 23:22:07 76

原创 三期集训第四天

今天看了一天数论,学了埃式筛和欧拉筛,还有欧拉函数。欧拉函数 就是找到从1~n与n互质的数的个数。 这个就是一个公式,然后根据容斥定理进行推导 φ(n)=n*(1-1/p1)(1-1/p2)(1-1/p3)*(1-1/p4)……(1-1/pn)//欧拉函数#include<iostream>using namespace std;int main() { int n; cin ...

2021-08-12 23:34:55 90

原创 三期集训第三天

今天学了一下种类并查集和带权并查集,然后补了几道题。题目:食物链//带权并查集#include<iostream>using namespace std;const int N = 50010;int f[N], d[N];int n, k;int find(int x) { if (f[x] != x) { int t = find(f[x]); d[x] += d[f[x]]; f[x] = t; } return f[x];...

2021-08-11 23:39:45 52

原创 三期集训第二天

今天和学长打比赛学会了一种新思想,就是按位去枚举,每一位都进行判断,一共有四种情况,然后来确定a1,会降很多时间复杂度,比赛之前还学了一下差分按位枚举代码#include<iostream>#include<cstdio> using namespace std;typedef long long LL;const int N=100010;LL b[N],c[N]; int main(){ int n; sca...

2021-08-10 22:37:36 59

原创 三期集训第一天

快速排序: 1.确定分界点 q[l] q[(l+r)/2] q[r] 随机选择 2.调整区间 让分界点左边的值都小于分界点,分界点右边的值都大于分界点。 3.递归处理左右两段。#include<iostream>using namespace std;const int N = 1e6 + 5;int n;int q[N];void quick_sort...

2021-08-09 23:19:49 58

原创 2021-08-06二期集训第九天

今天用set和数组实现了三个集合的交集,并集和补集,感觉set真的好用,可以少些很多东西,sort函数也很好用。#include<stdio.h>#include<string>#include<iostream>#include<string.h>#include<algorithm>#include<sstream>#include<set>using namespa...

2021-08-06 00:21:09 62

原创 暑假集训第八天

在暑假集训这八天,让我对算法和数据结构,还有关于ACM比赛了解很多,知道了很多,能够在假期集训的人我认为都属于敢于面对自己,认识自己,能够迎难而上的人吧。从第一天开始每天都在学习新的知识,第一天学习背包(01背包,完全背包,多重背包),不算之前讲的二分、位运算和离散化什么的,应该是我第一次对算法这么深入的接触吧,第一天学习自我感觉状态不是很好,然后不知道如何去学习,接受起来比较困难吧,之后的每一天都在调整自己的状态,让自己能够更好的去接受新的知识。第二天学的动态规划(dp),动态规划,感觉就像数..

2021-07-23 23:18:03 92

空空如也

空空如也

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

TA关注的人

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