前缀acwing 795

AcWing 180. 排书 (IDA*算法 = A* + 迭代加深, 感觉其实之所以IDA*可以过就是因为利用迭代加深和估价函数做了一步类似于剪枝的操作

要是有疑问就再看一遍视频 package 算法提高课; import java.util.Arrays; import java.util.Scanner; public class acw180 { static Scanner sc = new Scanner(System.in); stati ......
算法 函数 IDA 之所以 感觉

对acwing193的解释

首先是估价函数的解释 由于\(x\)较大,所以\(x\)一直平方是最快的能到达\(p\)及以上的方法,所以这个估价函数比实际代价小(或等) 再看\(gcd\)这个剪枝 把八种情况列出,如果\(x\)和\(y\)都是\(gcd=d\)的倍数,那么加减或翻倍之后的新的\(x\)和\(y\)一定也是\(d ......
acwing 193

CSS 选择符 前缀

1]CSS选择器超详细汇总 2]30个你必须记住的CSS选择符 3]CSS 选择器 ......
前缀 CSS

(字符串)02-最长公共前缀

1 import java.util.*; 2 3 public class Solution { 4 /** 5 * @param strs string字符串一维数组 6 * @return string字符串 7 */ 8 public String longestCommonPrefix ( ......
前缀 字符串 字符 02

前缀和、差分

前缀和、差分 前缀和可以快速求区间和。 差分相当于前缀和的逆运算。 前缀和、差分都是以空间换时间的算法 前缀和 定义 前缀和可以简单理解为「数列的前 n 项的和」,是一种重要的预处理方式,能大大降低查询的时间复杂度。 一维前缀和 题目一 Luogu P8218 【深进1.例1】求区间和 #inclu ......
前缀

差分与前缀和学习笔记

本来是不想写这篇博客的,但为了课前十分钟还是来水一发 前缀和 简介 继续引用OI-Wiki的话(OI-Wiki $yyds$ !): 前缀和可以简单理解为「数列的前 $n$ 项的和」,是一种重要的预处理方式,能大大降低查询的时间复杂度。 也就是说,我们能使用 $O(n)$ 的时间进行预处理,在 $O ......
前缀 笔记

acwing 第 130 场周赛  (前缀和,dfs,对不同边的处理)

#include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #include<climits> using namespace std; typedef long long LL; const int N = 5 ......
前缀 acwing 130 160 dfs

前缀和

前缀和 1.前缀和简介 前缀和是指某序列的前n项和,可以把它理解为数学上的数列的前n项和,(而差分可以看成前缀和的逆运算).合理的使用前缀和与差分,可以将某些复杂的问题简单化。 2.前缀和好处 求数组的某个区间的和时,最容易想出暴力算法,遍历区间求和,时间复杂度为O(n * m) 而使用前缀和进行求 ......
前缀

AcWing 算法基础课week 1 总结(万字长文)

AcWing 算法基础课week 1 总结 总结点 1:快速排序(分治思想) 题1:从小到大排序 主体思路:定义一个数x属于数组s,利用双指针,将数组分为大于等于x和小于等于x的两部分,然后递归处理。(具体步骤如下) 1. 如上图所示,我们定义一个数组s用来储存n个数据,然后定义两个指针i j,分别 ......
长文 基础课 算法 基础 AcWing

AcWing 768. 忽略大小写比较字符串大小

题目链接: #include <iostream> using namespace std; string get(string s) { string res; for (auto c : s) res += tolower(c); return res; } int main() { strin ......
大小 字符串 字符 AcWing 768

哈夫曼编码及前缀码的实现

哈夫曼编码 我们的任务是选一篇英语文章统计每个字符的概率,并实现哈夫曼前缀编码 所选文章内容: life is too short to spend time with people who suck the happiness out of you if someone wants you in ......
前缀 编码

Acwing.第130场周赛

Acwing.第130场周赛 比赛链接 A.最大数和最小数 题目链接 思路: 简单模拟,使用max()和min()函数就可以了 代码: #include<bits/stdc++.h> using namespace std; void solve(){ int a,b,c; cin>>a>>b>>c ......
Acwing 130

AcWing 1017. 怪盗基德的滑翔翼——最长上升子序列

最长上升子序列 1、\(O(n^{2})\) 简单DP做法 \[dp[i]=\max_{h[j] < h[i]} [dp[j] + 1] \]#include<bits/stdc++.h> using namespace std; const int N = 105; int h[N]; int d ......
序列 AcWing 1017

acwing276机器任务的证明

假设我们已经给每一个任务分配了一种模式了 那么相同模式的任务排在一起的时候肯定重启次数最小 对涉及到的模式,我们还原回二分图上 就是在二分图上尽量选择少的节点(一种模式代表一次重启次数,因为相同模式都是放在一起的),使每一个任务都可以被安排 就可以转换为最小点覆盖问题 ......
机器 任务 acwing 276

acwing374导弹防御塔分析

二分是怎么想到的? 我们假设已经找到了最终的方案,那么每一座防御塔都被分到了一些敌人去攻击 那么这个方案的时间是多少呢?就是每个防御塔的时间的最大值 每个防御塔的时间是他所分配的这些敌人里面所需要花费最长的时间去攻击的敌人的时间 相当于最大值最小,所以想到二分 acwing上的打卡代码换了一种实现方 ......
导弹 acwing 374

AcWing785

AcWing785. 快速排序 一、题目描述 给定你一个长度为 n的整数数列。 请你使用快速排序对这个数列按照从小到大进行排序。 并将排好序的数列按顺序输出。 输入格式 输入共两行,第一行包含整数 n。 第二行包含 n 个整数(所有整数均在 1∼1091∼109 范围内),表示整个数列。 输出格式 ......
AcWing 785

ACwing 334 K匿名序列

首先这道题很容易发现如果已经知道了最后的答案序列,那么操作顺序是无所谓的 所以我们可以假设从头操作到尾 由于题目给的是非严格递增序列,我们猜想最后的答案一定是一段一段的,段与段之间单调递增 比如1 1 1 2 2 2 2 2 3 3 4 5 5 反证:如果最终的答案序列存在\(a_{i}\)和\(a ......
序列 ACwing 334

数据加WJ前缀

你好,我将给你一个地址,请你遍历地址和地址下所有子文件夹,里面有很多图片名称,如"Gold watch_ Blue hexagonal dial_ Gold numbers and pointers_ Gold strap" 每个下划线作为分割的符号,下划线间的字符作为一个单元。如:“Gold wa ......
前缀 数据

Acwing.第 129 场周赛

Acwing.第 129 场周赛 比赛地址 A.字符串 题目 思路: 只需要用到reverse()反转函数就可以 代码: #include<bits/stdc++.h> using namespace std; void solve(){ string s; cin>>s; reverse(s.be ......
Acwing 129

AcWing785

AcWing785. 快速排序 一、题目描述 给定你一个长度为 n的整数数列。 请你使用快速排序对这个数列按照从小到大进行排序。 并将排好序的数列按顺序输出。 输入格式 输入共两行,第一行包含整数 n。 第二行包含 n 个整数(所有整数均在 1∼1091∼109 范围内),表示整个数列。 输出格式 ......
AcWing 785

AcWing785

AcWing785. 快速排序 一、题目描述 给定你一个长度为 n 的整数数列。 请你使用快速排序对这个数列按照从小到大进行排序。 并将排好序的数列按顺序输出。 输入格式 输入共两行,第一行包含整数 n。 第二行包含 n 个整数(所有整数均在 1∼1091∼109 范围内),表示整个数列。 输出格式 ......
AcWing 785

CF1304E 1-Trees and Queries(lca+树上前缀和+奇偶性)

题目 二话不说,直接按题意模拟暴搜,当然 \(O(nq)\) 的复杂度显然是寄了的。 不过,在模拟的过程中,我在链式前向星的删边中居然一开始错了,还是要 mark 一下以后注意。 void del(int x, int pre) { e[top].to = e[top].next = 0; h[x] ......
奇偶 前缀 Queries 1304E Trees

前缀和 差分

前缀和 前缀和定义 对于数列A,它的前缀和数列S[i]就表示数列A从第一个元素到第i个元素的总和。 计算公式 // 前缀和数列S 原数列A S[i] = S[i - 1] + A[i]; //S[i - 1] 表示i-1个元素的和加上A[i],就构成了前i个元素的和S[i] 具体应用 前缀和的主要用 ......
前缀

10-前缀树

10. 前缀树(trie) 8.1 前缀树概念 1. 前缀树概念 1)单个字符串中,字符从前到后的加到一棵多叉树上 2)字符放在路上,节点上有专属的数据项 数据项pass:有多少路径经过了这个点 数据项end:有多少路径是以这个点结尾 3)所有样本都这样添加,如果没有路就新建,如有路就复用 4)沿途 ......
前缀 10

前缀和算法题1

/** * https://www.nowcoder.com/practice/acead2f4c28c401889915da98ecdc6bf * * 本题采用前缀和的思想(用来快速的得到数组某一段区间里的值的和) * 首先录入数组arr * 创建一个dp数组用来存放数组的前缀和 * dp[i]就 ......
前缀 算法

前缀和算法题2

/** * https://leetcode.cn/problems/subarray-sums-divisible-by-k/description/ * 1.同余定理:如果(a-b)/p=k k为整数,则a%p=b%p * 2.C++和Java中对[负数%正数]的结果以及修正: * 负%正=负 ......
前缀 算法

快速排序——acwing算法基础课笔记

课堂内容+个人思考,个人笔记,但是欢迎补充、批评、指正。 快速排序基于分治的思想 平均时间复杂度O(nlogn) 已知数组q[] 步骤: 1、确定分界点(x): (1)首元素q[l]; (2)尾元素q[r]; (3)中值q[(l+r)/2]; (4)随机; 2、调整区间 将区间通过x值划分为两部分( ......
基础课 算法 基础 笔记 acwing

前缀和+差分数组

一、一维数组度前缀和--固定数组查询区间和 1.1 定义 对于给定一个数组arr(下标从0开始),它的前缀和S[i] 表示从arr[0]到arr[i]元素总和。 1.2 构造前缀和 S[i] = S[i-1] + arr[i-1] 1.3 应用-求某个区间的和 计算区间[i, j]的元素和 => a ......
前缀 数组

Acwing.第128场周赛

Acwing.第128场周赛 比赛地址 A长方体 题目 思路: 知道长方体的体积计算公式即可,就是一个比较简单的模拟 代码: #include<bits/stdc++.h> using namespace std; void solve(){ int a,b,c; cin>>a>>b>>c; cou ......
Acwing 128

前缀和

AcWing笔记——前缀和 前言 数组的前缀和,代表着一个数组前N个数的和。主要用于优化这样一种场景: 当题目要求进行求出一个数组从下标 \(i\) 到下标 \(j\) 之间的元素的和,且会多次进行这种操作时,我们可以使用前缀和的方法来优化求和的过程。 时间复杂度对比: 若使用for循环遍历整个数组 ......
前缀