自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 算法常用模板

一、数论1.试除法判定质数#include<iostream>using namespace std;int ff(int x){ if(x < 2) return 0; for(int i = 2; i <= x / i; i++){ if(x % i == 0) return 0; } return 1;}int main(){ int t; cin>>t; int x;

2024-04-12 21:36:51 668 1

原创 并查集加训

分别求 -1 和 1 的朋友有多少个(包括他们自己),然后取最小的,就是对数。可以选择多个集合的云,所以要用 01 背包。

2024-04-11 21:39:52 534

原创 蓝桥杯加训

思路:人和牛都记录三个数据,当前坐标和走的方向,如果人和牛的坐标和方向走重复了,那就说明一直在绕圈圈,无解。

2024-04-09 19:47:22 1976

原创 基础贪心问题

2.排队接水3.线段覆盖按区间右端点升序排序,如果能接上就接4.合并果子用小根堆维护最小值,每次取出两个最小值5.小A的糖果如果两个相邻的多了,那就先减去第二个,因为第二个还关联第三个6.删数问题删掉下坡数7.陶陶摘苹果(升级版)按花费力气升序排序,先摘花费力气小的8.铺设道路大的带着小的填,如果后面一个大于前一个高度,那就多填这个差值,最后加上第一个需要填的高度9.混合牛奶按照价格升序排序,先买便宜的10.纪念品分组让大的和小的组合11.跳跳!高低高低

2024-04-08 16:12:30 577

原创 二分查找和二分答案

二分可以使用的时间,边界一定要取到 [0, 1e10]无解的时候,可以取到左边界 l。二分最短跳远距离的最大长度。

2024-04-07 08:45:59 337

原创 Codeforces Round 933 (Div. 3)

用 set 记录所有可能的位置,顺时针就是:(i + r - 1) % n + 1,逆时针就是:(i - r + n - 1) % n + 1。每次根据 ai 迭代 ai+1 和 ai+2。如果有字符 p 就把他替换掉。

2024-04-06 11:06:57 343

原创 蓝桥杯练习题——搜索

注意数组空间要开大点,防止对角线数组存不下。

2024-03-29 15:25:34 374

原创 Codeforces Round 937 (Div. 4)

因为最多只能有一个字符不同,那么每个长度的区间只需要枚举连续的两段,判断即可。指数型枚举每一位是 0 还剩 1,然后除掉这个数,再继续搜索。

2024-03-29 11:29:29 537

原创 Educational Codeforces Round 163 (Rated for Div. 2)

i - j| + |ai - aj| <= k,让下标差大的点权差小,从左到右每 k 个进行这样构造,不足 k 个就按剩下的个数进行构造。3.如果拆开,代表当前数大于前一个数,此时拆开要满足几点要求:后面的个位数不大于前一个数,前面的个位数不大于后一个个位数。区间长度是独立的,从大到小枚举区间长度,如果找到了直接退出。1.数字最多两位,所以数字的拆解方案惟一。2.数字拆开一定变小,所以最后一个数不拆。

2024-03-28 17:19:57 468

原创 Codeforces Round 934 (Div. 2)

如果这个数在数组中出现了两次或以上的次数,那么bob必然无法阻止Alice选中(因为bob选一次后Alice就可以选这个数),所以bob应该首选最小的且数组中只有一个的数,但是为Alice先选,换个角度也就是说Alice可以“救”一个数,所以最小值应为数组中只有一个且第二小的数。(当然如果存在一个数没有出现且比上面得到的数小,那么最小应为没出现的数)再考虑下两边的某两个不等的数调换位置,那么两边会出现对子,对子XOR为0,其他数仍旧一致,那全部XOR结果依旧相等;

2024-03-27 04:19:59 323

原创 Codeforces Round 935 (Div. 3)

先预处理 1 个数前缀和,如果左边 0 和 右边 1 都大于等于 一半,那就取离中点最近的点。先求 m 后最小的值,然后求 a[i] + b[i + 1] 的最小值,b 为后缀和数组。先看看这个求的值在不在二分边界处,如果在就不用交换,如果不在,那就交换到边界处。

2024-03-26 21:50:53 330

原创 Codeforces Round 936 (Div. 2)

二分每个区间顶点个数,求最大的顶点数,即 k 尽可能小。

2024-03-26 21:49:58 331

原创 蓝桥杯练习题——博弈论

1.必胜态后继至少存在一个必败态2.必败态后继均为必胜态。

2024-03-25 17:55:28 1429

原创 动态规划——线性dp

【代码】动态规划——线性dp。

2024-03-25 03:52:14 505

原创 矩阵快速幂

【代码】矩阵快速幂。

2024-03-24 00:20:45 277

原创 蓝桥杯练习题——日期问题

分别计算从第一年到两个日期过了多少天,然后相减。

2024-03-19 17:05:05 447

原创 蓝桥杯练习题——贡献法(隔板法)

孤独的区间一定有一头孤独的牛,考虑每头牛对区间的贡献是多少。

2024-03-18 23:00:54 393

原创 树状数组(1)

单点修改,区间查询。

2024-03-15 21:48:11 550

原创 LeetCode周赛——388

箱子大小降序排序,按顺序装int。

2024-03-14 17:30:35 567

原创 蓝桥杯练习题——多路并归

不会反复横跳,按顺序合并,每次取出最大值只需要考虑合并几个鱼塘,合并后剩余时间是多少,然后在这个超级鱼塘每次取最大值。

2024-03-14 14:55:33 687

原创 C++读取文件数据

【代码】C++读取文件数据。

2024-03-12 10:02:26 946

原创 蓝桥杯2023真题(4)

路线:2 -> 6 -> 5 -> 11.一个点都不去去掉的花费记作sum2.去掉第一个点,sum - cost[2 -> 6]3.去掉第二个点,sum - cost[2 -> 6] - cost[6 -> 5] + cost[2 -> 5]dfs 中的参数不是一下就想到的,而是在写的过程中,你发现需要某个信息,而这个信息没有被提前记录,所以可以把这个信息当作参数记录下来正解就是优化 cost 的求法。

2024-03-11 20:46:24 590

原创 蓝桥杯练习题——树状数组和线段树

时间复杂度:O(logn),查询和修改都是解决问题:单点修改、区间查询,也可以区间修改,单点查询原理:数组下标必须从 1 开始,如果下标二进制最右边有 k 个 0,那就是第 k 层,lowbit(x) = 2 ^ k,每个 c[x] 存储的是 [x - lowbit(x), x] 区间的和。

2024-03-10 15:51:13 902

原创 蓝桥杯练习题——归并排序

1.求最小值的时候,可以直接按升序排序,这样得到的值就是最小值2.求最小交换次数的时候,不能直接排序,因为只能交换相邻的数,只需要知道他们的相对大小,所以可以先用离散化,把火柴高度映射成 1 到 n,然后用一个中间数组 c,让 b 数组按照 a 数组的顺序归并排序,交换相邻两个元素,最多只会使得逆序对数量减一。

2024-03-08 22:59:43 625

原创 背包九讲——菜鸟九题

默认 f 数组初始化为 0,所以 f[i] 不一定是装满 i 容量的最大价值,如果想让 f[i] 表示装满 i 容量的最大价值,可以初始化 f 数组为负无穷,f[0] = 0下面的题目都在 acwing 题库前面。

2024-03-07 16:45:34 782

原创 蓝桥杯练习题——双指针

1.从大到小排序,把数组分成三段,[1, j] (j, j2] (j2, n],j 以 i 为界限,j2 以 i - 1 为界限2.第一部分引用数已经够了,第三部分引用数差太多,判断第一部分 + min(L, 第二部分)是否有 i 篇int。

2024-03-06 00:51:30 687

原创 kuangbin专题——简单搜索

1.dfs 参数里枚举每一行,然后在里面弄两个分支,选或者不选,选的话就枚举这一行的所有元素2.注意最后一行要先判断,再返回。

2024-03-05 16:49:56 471

原创 蓝桥杯练习题——dp

尽可能分成两堆重量相同,使得相撞后重量最小1.f[j]: 容量为 j 的背包,最大价值3.全部 = 04.倒序遍历public:i < n;i < n;i++){j--){

2024-03-05 00:08:02 6796 2

原创 蓝桥杯练习题——差分

1.区间同时加减 1,可以转换成一个差分数组两个端点的操作2.用 p 减去 t 数组,得到要消除的数组 a,对 a 求差分数组3.差分数组一正一负为一个操作,因为是把这个原数组区间加上了 1,单独的正负为一个操作4.总共需要的操作就是差分数组里 max(正数和, 负数和)

2024-03-04 11:12:11 677

原创 蓝桥杯练习题——前缀和

1.求最坏情况下,画的墙总和是多少2.画的墙在中间连续一段,画了的墙长度是 n / 2 向上取整3.取最大的 n / 2 向上取整区间和。

2024-03-04 02:38:25 780

原创 蓝桥杯练习题——二分

1.随着订单的增加,每天可用的教室越来越少,二分查找最后一个教室没有出现负数的订单编号2.每个订单的操作是 [s, t] 全部减去 d。

2024-03-03 14:15:27 651

原创 Java多线程

【代码】Java多线程。

2024-03-02 00:24:37 116

原创 Java图书管理系统

实现简单的增删改查。

2024-03-01 20:40:42 523

原创 Redis

在 redis 所在目录,打开 cmd 然后输入 redis-server.exe redis.windows.conf 回车,tab可以补全。

2024-02-21 23:22:06 869

原创 Codeforces Round 928 (Div. 4)

分别统计 A 和 B 的个数,输出个数多的。

2024-02-21 00:17:19 817

原创 Codeforces Round 926 (Div. 2)

最大值减去最小值。

2024-02-16 13:20:15 346

原创 Codeforces Round 925 (Div. 3)

每次枚举每一位。

2024-02-15 17:00:17 635

原创 苍穹外卖启动!

Alt + Enter:代码补全ctrl + 左键:进入这个方法。

2024-02-14 22:34:31 249

原创 LeetCode周赛——383

【代码】LeetCode周赛——383。

2024-02-14 15:23:13 398

原创 蓝桥杯2023年真题(3)

【代码】蓝桥杯2023年真题(3)

2024-02-14 00:59:06 373

空空如也

空空如也

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

TA关注的人

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