- 博客(10)
- 收藏
- 关注
原创 归并排序求逆序对数量
分治的思想 递归排序[L,mid]和[mid+1,R]直至只有一个元素 合并,在合并的过程中,注意temp数组中长度为当前r-l+1,合并成一个有序数组; #include<iostream> using namespace std; const int N = 100010; int n; int q[N], temp[N]; void mergesort(int a[], int l, int r) { if (l >= r) return; int mid .
2021-11-21 20:09:32
250
原创 Acwing 每日一题3807 构造字符串
3807. 构造字符串 难度级别【简单】 题目描述 给定两个整数 n 和 k,请你构造一个长度为 n 的字符串 s。 字符串 s 需满足: s 由前 k 个小写字母构成,且前 k 个小写字母均在 s 中出现至少一次。 前 k 个小写字母中,出现次数最少的字母的出现的次数尽可能多。 输出任意满足条件的字符串 s。 样例 3 7 3 4 4 6 2 算法1 思路分析 贪心,即按照题意从a开始分配前k个再按顺序循环分配n-k个(每次k个),即k=3时,abcabcabc… C++ 代码 #include<
2021-08-17 19:35:19
243
原创 Acwing 3806 最小化字符串 [贪心]
Acwing 3806 最小化字符串 难度级别【简单】 题目描述 给定一个包含 n 个小写字母的字符串 s。 现在,你可以将其中的最多一个字符移除(也可以不移除任何字符),你的目标是使这个字符串在字典序上尽可能小。 输出你可以得到的字典序上最小的字符串。 输入样例 2 3 aaa 5 abcda 输出样例 aa abca 算法思想 字典序最小即指abc,bcd,dca,abd这四哥字符串中字典序最小的为abc。 题目的意思即去除一个字符使得字典序最小,例如adca
2021-08-16 20:45:09
178
原创 Acwing 消灭数组 3802
题目描述 给定一个长度为 n 的数组,如果它不是非降序的,那么就将它的前半部分或后半部分消灭。 不断重复这个消灭一半数组的过程,直至数组变为升序为止。 请问,得以幸存的数组的最大可能长度是多少? 输入样例 3 4 1 2 2 4 8 11 12 1 2 13 14 3 4 4 7 6 5 4 输出样例 4 2 1 分析 1.注意题目中最大长度,即消除两边后都需计算,因此转化为两个子问题使用递归求两边求较大值 2.二分法注意左右边界,中间取left+(right-left)/2 C++ 代码 #include
2021-08-15 20:57:02
146
1
原创 Acwing 每日一题 3799送糖果
每日一题 Acwing 3799 送糖果 难度级别[简单] 题目描述 Vladik 有 a 个糖果,Valera 有 b 个糖果。 两个人回合制的互送礼物给对方。 第一轮,Vladik 送给 Valera 1 个糖果。 第二轮,Valera 送给 Vladik 2 个糖果。 第三轮,Vladik 送给 Valera 3 个糖果。 以此类推,两人轮流给对方送糖果,且每轮送出的糖果数量都比上一轮多一个。 当某一轮,轮到某人送糖果时,如果糖果数量不够了,则停止互送礼物。 请问,是谁的糖果率先不够? 注意,每个人
2021-08-15 20:53:52
177
原创 Acwing 785 快速排序
基础算法 快速排序 Acwing 785 基本思想:分治 题目描述 给定你一个长度为 n 的整数数列。 请你使用快速排序对这个数列按照从小到大进行排序。 并将排好序的数列按顺序输出。 样例 5 3 1 2 4 5 算法1 (时间复杂度) O(nlogn) 分析 注意边界问题 选用i为划分时,递归部分quicksort(a,left,i-1)与quicksort(a,i,r),不可选用哨兵p=a[l],例如样例1,2会持续划分一边造成死循环;同理选用j为划分时,哨兵不可选用p=a[r]; 由于先做自增自减.
2021-08-15 20:48:23
133
原创 汇编语言 debug
windows 64位debug执行具体步骤 r命令的使用 e 输入数据(只需要输入首地址) d 段地址:偏移地址 查看内存内容 a输入汇编指令 t单步调试
2021-03-14 22:30:59
232
原创 汇编语言第二章 寄存器
CPU概述 一个典型的CPU由运算器、控制器、寄存器等器件组成,这些器件靠内部总线相连。 区别: 内部总线实现CPU内部各个器件之间的联系; 外部总线实现CPU和主板上其他器件的联系。 寄存器概述 8086CPU有14个寄存器,它们的名称为: AX BX CX DX SI DI SP BP IP CS SS DS ES PSW 2.1 通用寄存器 8086CPU 所有的寄存器都是16位,可存放两个字节。 通用寄存器:AX BX CX DX 一个16位寄存器所能存储的数据的最大值 2162^{16}216
2021-02-06 14:36:06
612
1
原创 汇编语言第一章
第一章 基础知识 引言 汇编语言是直接在硬件之上的编程语言,首先先要了解硬件系统的结构(CPU, 内存),才能有效的应用汇编语言对其编程。 汇编课程的研究重点放在如何利用硬件系统的编程结构和指令集有效灵活的控制系统进工作。 1.1 机器语言 机器语言是机器指令的集合。 机器指令展开来讲就是一台机器可以正确执行的命令。 指令:01010000 1.2 汇编语言的产生 汇编语言的主体是汇编指令。汇编指令与机器指令的差别在于指令的表示方法上。 例: 机器语言:1000100111011000 操作:寄存器BX的
2021-02-06 14:32:28
243
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅