摘要: 二分答案 对于一个需要求最优解的问题 当直接求解问题较难时,可以通过二分答案对问题进行转化 适用范围:答案具有单调性 即答案为 x 时可行则答案小于等于 x 时都可行; 答案为 x 时不可行则答案大于等于 x 时都不可行. 二分答案将最优性问题转化为可行性问题 二分 二分有诸多写法,不同方法各有特色 阅读全文
posted @ 2022-05-23 17:32 计网君 阅读(129) 评论(0) 推荐(0)
摘要: 并查集 算法介绍 并查集是一种树形的数据结构,用于处理不相交集合间的合并及查询问题 在使用中常以 森林 来表示 集合定义方法:“代表元法”,即 每个集合选择一个固定的元素,作为整个集合的 “代表” 元素 基本操作 初始化:将元素 \(x\) 作为自身集合的 “代表” 元素 for(int i = 1 阅读全文
posted @ 2022-03-15 16:42 计网君 阅读(91) 评论(0) 推荐(0)
摘要: 杜教筛学习笔记 杜教筛可以在非线性时间 \(O(n^{\frac 23})\) 内快速求出积性函数的前缀和 前置知识 积性函数 积性函数:对 \(\forall a,b\in Z\and gcd(a,b)==1\) 有 \(f(a\cdot b)=f(a)\cdot f(b)\) 的数论函数 \(f 阅读全文
posted @ 2022-01-01 23:54 计网君 阅读(118) 评论(0) 推荐(0)
摘要: Codeforces Round #762 (Div. 3) A. Square String?(⭐) 题目链接:https://codeforces.com/contest/1619/problem/A 题目大意: 判断给定的字符串 \(s\) 是或否可通过 某一字符串重复一次 得到 \(T\) 阅读全文
posted @ 2021-12-26 01:02 计网君 阅读(306) 评论(0) 推荐(0)
摘要: Dirichlet 卷积学习笔记 定义 定义数论函数 \(f,g\),则他们的 \(Dirichlet\) 卷积为 \[ (f*g)(x)=\sum_{d|x}f(d)\cdot g(\frac xd)=\sum_{d|x}f(\frac xd)\cdot g(d) \] 性质 \[ f*g=g*f 阅读全文
posted @ 2021-12-19 17:54 计网君 阅读(85) 评论(0) 推荐(0)
摘要: 基础算法补充 复杂度 时间复杂度 概念 在程序设计竞赛中,一般只需了解时间复杂度可以大致地通过一个算法运算的次数来描述程序运行的效率, 常常用大写字母 Ο 来表示。在表示时间复杂度的时候,只保留数量级最大的一项,并忽略系数。 举个栗子 对于给定的常数 \(N\),若某一个算法计算的次数是 \(3N^ 阅读全文
posted @ 2021-12-12 21:50 计网君 阅读(162) 评论(0) 推荐(0)
摘要: 多维动态规划 多维动态规划是在线性动态规划的基础上扩展状态维数,再进行状态转移的设计。 难点在于所设计的状态的维数 及 将状态设置好后,对状态的转移。 一般来说,问题越复杂,设计状态的维数就越多。 下面通过例题加深对于多维动态规划的理解。 例题:游戏 P4161 [SCOI2009]游戏 \(win 阅读全文
posted @ 2021-12-05 19:15 计网君 阅读(492) 评论(0) 推荐(0)
摘要: 动态规划基础及线性动态规划 动态规划的状态及记忆化搜索 动态规划$(Dynamic Programming,DP)$就是通过对问题的拆分, 定义问题的状态和状态之间的关系。 使得问题能够通过递推(或是分治)的方式去解决。 状态 状态的本质是某个问题的子问题。 和搜索算法类似,只有当确定状态后,才能找 阅读全文
posted @ 2021-11-28 17:42 计网君 阅读(217) 评论(0) 推荐(0)
摘要: 好题分享1 Problem Description Tarzan 非常烦数轴因为数轴上的题总是难度非常大。不过他非常喜欢线段,因为有关线 段的题总是不难,讽刺的是在一个数轴上有 n 个线段,Tarzan 希望自己喜欢的东西和讨厌的 东西不在一起,所以他要把这些线段分多次带走,每一次带走一组,最多能带 阅读全文
posted @ 2021-11-21 14:42 计网君 阅读(123) 评论(0) 推荐(0)
摘要: 数列分块 当处理数列问题时,有时会遇到区间修改或区间询问操作 使用暴力方法无疑会在 区间 上耗时较多 而对于和区间有关的问题,常常通过维护区间信息等来实现 分块,即将序列分成一小块一小块来进行处理维护 将每一块当作一个整体,记录维护整体的有关信息,来减小时间复杂度 在对序列进行分块时,有 序列总长度 阅读全文
posted @ 2021-11-14 19:35 计网君 阅读(114) 评论(0) 推荐(0)
摘要: 数论基础 整除 对于两个整数 \(a\ ,\ b(a\neq 0)\) ,若 \(\exists k\in Z\) 使 \(ak=b\) 则称 \(a\) 整除 \(b\) ,记做 \(a|b\) 快速幂 P1226 【模板】快速幂||取余运算 快速幂用于快速计算 \(x^y\ \%\ mod\) 阅读全文
posted @ 2021-11-07 01:43 计网君 阅读(207) 评论(0) 推荐(0)
摘要: \[ \Huge 动态规划优化方法类型选讲 \] 数据结构优化DP​ 引言 在状态转移过程中, 我们通常需要在某个区间范围内进行择优, 选出最佳决策点. 而数据结构通常可以维护出转移的最优决策. 数据结构优化$DP$的实质为优化"转移". 例题 UVA12983 The Battle of Chib 阅读全文
posted @ 2021-10-31 04:15 计网君 阅读(181) 评论(0) 推荐(0)
摘要: 文件读入输出 知识介绍 顾名思义,程序将会从文件中读入数据,也会将数据输出到文件中(两文件可不同) 在有时,如果程序想要测试数据较大的样例 可能会因为要输入的东西过多而无法完成 这时,如果我们已经有了输入数据的文件 便可以通过文件读入输出来使程序自动完成数据的输入与输出 使用方法 freopen(" 阅读全文
posted @ 2021-10-20 01:24 计网君 阅读(391) 评论(0) 推荐(0)
摘要: 题目链接 题目描述 求方程 \(\displaystyle\frac{(x+a)}{(x+b)} = c\) 的非负整数根,其中 \(a,b,c\) 都是非负整数。 输入 第一行是一个整数 \(K\),表示样例的个数$(K≤30000)$。 以后的 \(K\) 行每行为以一个样例,包含三个非负整数$ 阅读全文
posted @ 2021-10-18 15:44 计网君 阅读(85) 评论(0) 推荐(0)
摘要: 君君算法课堂 本节《君君算法课堂》主要对于基础算法进行讲解 这些算法虽然简洁易懂,但却是我们理解更加高深算法的有力工具 我们也能在其中发现算法世界的乐趣,培养我们对于算法的兴趣 下面我们话不多说,开启本节《君君算法课堂》 位运算 位运算是对二进制下每一位进行运算后得到一个新的二进制数的运算 算数位运 阅读全文
posted @ 2021-10-17 20:33 计网君 阅读(399) 评论(0) 推荐(0)