acwing 193

AcWing 蓝桥杯 3994. 阿坤老师的独特瓷器 (非常经典俄罗斯套娃问题

package 蓝桥杯; import java.util.Arrays; import java.util.Scanner; public class lanqiao3994 { /** * 思路 : * 固定套路了感觉, 先按直径从大到小排, 然后直径相同的再按高度从小到大排 * 然后从前往后遍 ......
蓝桥 瓷器 老师 经典 AcWing

AcWing 920. 最优乘车 (抽象建图 + bfs

package 算法提高课; import java.util.Arrays; import java.util.LinkedList; import java.util.Queue; import java.util.Scanner; public class acw920 { /** * 本题的 ......
AcWing 920 bfs

AcWing 1126. 最小花费 (从终点方向求的dij -> 注意本题这么求就必须判断两点之间是否有边

package 算法提高课; import java.util.Arrays; import java.util.Scanner; public class acw1126 { static int n, m; static int[][] g; static double[] d; static ......
本题 终点 方向 之间 AcWing

AcWing 903. 昂贵的聘礼 (超级源点 + 等级限制 + 抽象建图

package 算法提高课; import java.util.Arrays; import java.util.Scanner; public class acw903 { static int m, n; static int[] dis, level; static boolean[] st; ......
聘礼 等级 AcWing 903

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

一点无用功 。74ls193

//74LS193 具有双时钟和清零功能的同步 4 位加/减二进制计数器//4-bit synchronous binary up/down counter// Synchronous reversible 4-bit binary counting// Asynchronous parallel ......
193 74 ls

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

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

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

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

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

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

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

acwing300任务安排1对“费用提前计算”的解释

我们考查对任意一种方案答案的构成 假设最终方案只有这三段 那么很显然,答案为$$(S+sumT_[i])\cdot sumC_{i}+(2S+sumT_[j])\cdot (sumC_{j}-sumC_{i})+(3S+sumT_[n])\cdot (sumC_{n}-sumC_{j})$$ 我们换 ......
费用 任务 acwing 300

归并排序 Acwing 787

归并排序最重要的一部便是归并,我们的模板顺序为: 定义一个中间值,将我们的区间范围一分为二,我们将 这两部分看成两个数组,我们分别将这两个数组进行归并 排序,并且定义一个新的数组,将这两个数组排序好后导入 到这个新数组中,并最后将这个定义的数组输出为原数组,即可 实现归并排序。 1 #include ......
Acwing 787

二分模板 Acwing 789 数的范围

二分一定有解,若出现无解,一定是题目中无解二分步骤:定义check函数,先找到一个x,使得区间左边满足条件区间右边不满足条件, 定义mid = l + r >> 1去判断于x的关系,此时需要判断边界关系,例如当a[mid]小于x时,说明二分值在x的左边,此时缩小范围为【mid,r】, 即令 l = ......
范围 模板 Acwing 789

AcWing 3559. 围圈报数

考点:约瑟夫环问题,环形链表,队列 #include <bits/stdc++.h> using namespace std; const int N = 55; int ne[N];//链表指针数组 int main() { ios::sync_with_stdio(false), cin.tie ......
AcWing 3559

Acwing127周赛第三题 构造矩阵 (套路)

题目链接:构造矩阵 题目描述 我们希望构造一个 n×m 的整数矩阵。 构造出的矩阵需满足: 每一行上的所有元素之积均等于 k。 每一列上的所有元素之积均等于 k。 保证 k 为 1 或 −1。 请你计算,一共可以构成出多少种不同的满足条件的矩阵。 由于结果可能很大,你只需要输出对 109+7 取模后 ......
套路 矩阵 Acwing 127

Acwing.第126场周赛

Acwing.第126场周赛 比赛链接 之前忘记整理上传了,不能有遗留问题 A.蜗牛爬井 蜗牛在 n米深的井底往上爬,每天清晨到傍晚向上爬 5米,夜间又滑下来 4米,请问像这样从某天清晨开始,第几天爬到井口? 输入格式 一个正整数 n。 输出格式 一个整数,表示爬到井口的天数。 思路: 就是一个比较 ......
Acwing 126

acwing367证明

首先,\(max(p,q)\)是下界,因为连一条边最多只能减少一个零入度点和一个零出度点,而最终的图不可能有哪怕一个零出度点或者零入度点(最后的图刚好就是一个点) 根据这个下界,我们也很容易可以构造出来一种方法,让零出度点和另一个SCC的零入度点相连即可,就像下面一样(红色边是添加的边) ......
acwing 367

acwing318 划分大理石

有价值分别为 1..6 的大理石各 a[1..6] 块,现要将它们分成两部分,使得两部分价值之和相等,问是否可以实现。 其中大理石的总数不超过 20000 。 输入格式 输入包含多组数据! 每组数据占一行,包含 6 个整数,表示 a[1]∼a[6] 。 当输入为 0 0 0 0 0 0 时表示输入结 ......
大理石 acwing 318

对acwing355异象石引理的证明

首先我们抽象一下这道题的模型,然后把引理记住 模型:对于一棵树上选定的一些点,把他们连通起来的最小边数 我们先考虑一种朴素做法,对于任何一种方案,任取其中两个点,那么这个方案一定包含这两个点之间的路径 就是说,我们依次添加每个点,对于每一个新添加进来的点,让这个点与其已经添加的点求路径,然后把路径上 ......
acwing 355