- 博客(345)
- 资源 (6)
- 问答 (1)
- 收藏
- 关注
原创 Maximum Sum(贪心策略,模运算,最大子段和)
在第一个测试用例中,最好在数组中取一个空子数组两次,并在任意位置插入空子数组的和。的任意连续子数组(可能为空),并在数组的任意位置插入该子数组的和。取余的时候要考虑负数的情况。若为负数可以先加上模数再进行取余。表示为原始数组中总和最大的子数组的总和。由于这个数字可能非常大,请输出取模为。其中一个操作是选择数组。次这样的操作后数组可能的最大和。核心:找到数组中总和最大的子数组。,具有最大和的子数组的和最初是。的余数等于最小非负数。表示为原始数组的总和,后得到的数组最大和。,这样得到的数组和为。
2024-03-28 21:00:00 656
原创 Median of an Array(贪心策略,编程技巧)
输出一个整数 - 增加数组中位数所需的最少操作数。你的任务是找出增加数组中位数所需的最少运算次数。因此,只需一次操作,中位数就增加了。先对数组进行排序,找出数组中的中位数,即数字。对第一个数字进行一次运算,得到数组。为了使中位数增加,即至少变为。是按非递减顺序排列的数组。,因为它是非递减排序数组。,因为它是非递减排序数组。不一定包含不同的数。,这个数组的中位数是。
2024-03-23 16:42:56 789
原创 第九章 指针2
void 指针void * p;可以对任何类型的指针对 void 指针进行赋值或初始化void *p1;p1 = &d;因没有定义,所以对于void *类型的指针ppp∗p*p∗p无定义。p++pp−−p--p−−ppnp+=npnpnp+npnp−np-np−n等均无定义。程序运行期间,每个函数都会占用一段连续的内存空间。而函数名就是该函数所占内存区域的起始地址(也称“入口地址”)。
2023-11-29 14:32:29 102
原创 竞赛知识点12【树状数组】
在基于线段树的实现中,这个和是可以直接求得到。另一种思路:如果计算(从。,同时需要正确维护序列的前缀和。根据树状数组的结构和性质,只有结点。这就导致了线段树的右儿子的值不需要了。如果线段树每个节点维护的是对应区间的和,比如说计算从。每个小区间的区间和都已经保存在数组。及其祖先结点保存的 “区间和” 包含。的数组,绝对不能出现下标为。,需要对这些结点进行修改。在二进制表示下最低位的。的二进制表示中每个等于。中,查询的时间复杂度为。树状数组能处理的下标为。任意结点的祖先至多有。
2023-11-24 11:03:15 149
原创 竞赛知识点11【线段树】
修改时,找到对应的结点,修改 add,并且更新结点维护的值,而这个结点所有的祖先都能通过当前结点得到修改后所维护的值,但是当前结点的子结点的区间和无法立即更新,当我们需要用到这些子结点的信息时再进行更新。(线段树存的是区间,二叉树存的是点,所以线段树会出现许多结点空着的情况,如下图,结点[3] 的左右儿子空缺)修改区间,不是将所有的位置的值更新,而是将修改对值的影响记录在根到叶子路径上的某结点处。点的区间所对应的结点,将路径经过的结点的 add 维护起来,就是位置。,我们只需要得到如下三个结点的信息即可。
2023-11-01 16:23:20 125
原创 HDU-1698 Just a Hook(线段树区间更新)
在 DotA 的游戏中,Pudge 的肉钩实际上是大多数英雄最可怕的东西。对于每次操作,Pudge 可以将编号从 X 到 Y的连续金属杆更改为铜棒、银棒或金棒。定义了一个操作:将从 X 到 Y 编号的棒更改为金属类 Z,其中 Z=1 表示铜类,Z=2 表示银类,Z=3 表示金类。钩子的总值计算为 N 根金属棒的值之和。你会认为原来的钩子是由铜棒制成的。一组样例,10 根金属棒,两次操作。对于每种情况,在一行中打印一个数字,表示操作后钩子的总值。,这是 Pudge 肉钩的棒数,第二行包含整数。
2023-10-20 16:22:50 110
原创 HDU-1754 I Hate It(线段树单点更新,维护区间最大值)
不管你喜不喜欢,现在需要你做的是,就是按照老师的要求,写一个程序,模拟老师的询问。老师们很喜欢询问,从某某到某某当中,分数最高的是多少。,将 id 为 3 的学生的成绩改为 6,改完之后的 5 个数为。,将 id 为 2 的学生的成绩改为 9,改完之后的 5 个数为。,询问区间 [1,5] 的最大值,输出的结果为 5。,询问区间 [3,4] 的最大值,输出的结果为 6。,询问区间 [4,5] 的最大值,输出的结果为 5。,询问区间 [1,5] 的最大值,输出的结果为 9。)的学生当中,成绩最高的是多少。
2023-10-20 14:17:46 67
原创 第八章 指针1
类型名 * 指针变量名;int * p;//p是一个指针,变量 p 的类型是 int*char * pc;//pc是一个指针,变量 pc 的类型是 char*float * pf;//pf 是一个指针,变量 pf 的类型是 float*T * p;//T可以是任何类型的名字,比如int,double,char等等p的类型:T * *p的类型:T通过表达式 *p,可以读写从地址 p 开始的 sizeof(T) 个字节*p 等价于存放地址 p 处的一个 T 类型的变量* 为间接引用运算符。
2023-10-13 17:39:32 105
原创 竞赛知识点5【图论】
图论起源于著名的哥尼斯堡七桥问题——从这四块陆地中任何一块开始,通过每一座桥正好一次,再回到起点。欧拉在 1736 年解决了这个问题,欧拉证明了这个问题没有解,并且推广了这个问题,给出了对于一个给定的图可以某种方式走遍的判定法则。这就是后来的欧拉路径和欧拉回路。这项工作使欧拉成为图论〔及拓扑学〕的创始人。图是由顶点V的集合和边E的集合组成的二元组:• 记GVEG=(V,E)GVE• 存在一个结点vvv,可能含有多个前驱结点和后继结点。有向图,点与有向边的集合。
2023-06-16 13:19:09 737
原创 竞赛知识点4【搜索】
• 通过不停的试探去寻找解的一种算法。与其说是一种算法,不如说是一种方法。• 后面就跟着2,3,4的全排列—— 所以就相当于是原问题的子问题的求解。个皇后而彼此不受攻击(即在棋盘的任一行,任一列和任一对角线上不能放置。• 更高级的有IDDFS,DBFS,A*,IDA*等等。问,如果一个马,从第一个格子开始走,那么走遍整个。的国际象棋棋盘,国际象棋的马同样是走“日”字。• 基础的方法有暴力的搜索法,深搜,广搜三种。的棋盘的方案,有多少种?个皇后),编程求解所有的摆放方法。VOID DFS(状态 A)
2023-04-27 16:49:11 962 1
原创 前、中、后缀表达式及其转换
前缀表达式又称波兰式,运算符位于操作数之前。举例说明: ( 3 + 4 ) × 5 - 6 对应的前缀表达式:。中缀表达式在计算结果时,往往转成其它表达式来操作(一般转成后缀表达式)。后缀表达式又称逆波兰表达式,运算符位于操作数之后。
2023-04-19 18:06:51 490
原创 freopen函数实现输入输出重定向
正常的是 dev 编译运行,出现控制台,手动输入,然后显示输出。现在通过 freopen 函数实现输入输出的重定向。
2023-02-17 13:13:30 223
原创 竞赛知识点3【贪心】
贪心算法(又称贪婪算法)是指:在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的是在某种意义上的局部最优解。• 能够使用贪心算法的问题都是能严格证明贪心出的局部最优解就是所求的全局最优解的。• 每次都选看起来最好的!
2022-12-29 14:01:16 452
原创 竞赛知识点2【枚举】
已知任一区域的起始点和终止点的坐标都是整数,区域之间可能有重合的部分。现在要把这些区域中的树(包括区域端点处的两棵树)移走。某校大门外长度为L的马路上有一排树,每两棵相邻的树之间的间隔都是1米。我们可以把马路看成一个数轴,马路的一端在数轴0的位置,另一端在L的位置;给定长度为n的整数数列以及整数S,求出总和不小于S的连续子串的长度的最小值,如果解不存在,输出0。求一次前缀和,就可以得到数列的每个元素的值。,而区间内部的相邻两个数的差值是不变的。在所有的修改操作进行完之后,对。,求所有的修改之后每个数的值。
2022-12-28 15:28:56 113
原创 STL_简介
在 ACM 竞赛中,需要用到数组、字符串、队列、堆栈、链表、平衡二叉检索树等数据结构和排序、搜索等算法,以提高程序的时间、空间运行效率。这些数据结构,如果都需要手工来编写,那是相当麻烦的事情。幸运的是,ANSI C++中包含了一个 C++ STL(Standard Template Library),即 C++标准模板库,又称 C++泛型库,它在 std 命名空间中定义了常用的数据结构和算法,使用起来十分方便。STL 提供三种类型的组件:容器、迭代器和算法。容器主要有两类:顺序容器和关联容器。顺序容器(ve
2022-12-08 11:45:46 64
原创 STL_string
c语言只提供了一个char类型用来处理字符,而对于字符串,只能通过字符串数组来处理。C++STL提供了string基本字符系列容器来处理丰富的字符串,可以把string理解为字符串类,它提供了添加、删除、替换、查找和比较等丰富的方法。使用 string 容器,需要头文件包含声明下面这条语句创建了字符串对象 s,s 是一个空字符串,其长度为 0:2.2、给 string 对象赋值string 对象赋值一般有两种方式。(1)直接给字符串对象赋值,如:(2)更常用的方法是,把字符指针赋给一个字符串对象
2022-12-08 11:21:04 345
原创 第七章 字符串1
用cin、 scanf将字符串读入字符数组时,会自动在字符数组中字符串的末尾加上 ‘\0’● char数组的内容,可以在初始化时设定,也可以用C++库函数进行修改, 还可以用对数组元素赋值的办法任意改变其中的某个字符。● 包含‘\0’字符的一维char数组,就是一个字符串。● “” 也是合法的字符串常量,称为“空串”, 空串仍然会占据一个字节的存储空间,存放 ‘\0’。//s2拼接到s1后面。● 字符串常量占据内存的字节数等于字符串中字符数目加1, 多出来的是结尾字符‘\0’。
2022-12-01 15:24:54 471
原创 原码、反码、补码
对有符号数而言,符号的“正”、“负”机器是无法识别的,但由于“正”、“负”恰好是两种截然不同的状态,如果用“0”表示“正”,用“1”表示“负”,这样符号也被数字化了,并且规定将它放在有效数字的前面,即组成了有符号数。首先,因为人脑可以知道第一位是符号位,在计算的时候我们会根据符号位,选择对真值区域的加减。原码是机器数中最简单的一种表示形式,符号位为 0 表示正数,符号位为 1 表示负数,数值位即真值的绝对值。反码的表示方法为:正数的反码是其本身,负数的反码是在其原码的基础上, 符号位不变,其余各个位取反。
2022-11-30 17:00:43 185
原创 第五章 函数与位运算
函数”可以将实现了某一功能,并需要反复使用的代码包装起来形成一个功能模块(即写成一个“函数”),那么当程序中需要使用该功能时,只需要写一条语句,调用实现该功能的“函数”即可。●&:对应的两个二进制位均为1时,才为1,否则为0。a[i][j]的地址:数组的首地址+i×N×sizeof(a[0][0])+j×sizeof(a[0][0])(N是数组列数)二维数组作为形参的写法:二维数组作为形参时,必须写明数组有多少列,不用写明有多少行。数组作为函数参数时,是传引用的,即形参数组改变了,实参数组也会改变。
2022-11-25 18:20:05 279
原创 木棍加工(贪心)
根,每根棍子的长度和宽度都是已知的。机器处理一根棍子之前需要准备时间。处理完一根棍子后,尽可能的让所有符合条件的棍子都在这跟棍子后面处理。花费一个准备时间,处理尽可能多的棍子。( 按 (4, 9)、(3, 5)、(1, 4)、(5, 2)、(2, 1)的次序进行加工)。长度从大到小排序,长度相同时,宽度从大到小排序。根棍子所需要的最短准备时间。仅一行,一个整数,所需要的最短准备时间。的棍子,那么如果下一个棍子长度为。,这个棍子就不需要准备时间,否则需要。根棍子,长度和宽度分别为。第一根棍子的准备时间为。
2022-06-24 15:41:47 190
原创 数据库<5>---MySQL数据库的基本操作DML上机练习
文章目录一、建表1.1、problem1.2、answer二、插入数据2.1、problem2.2、answer三、修改数据3.1、problem3.2、answer一、建表1.1、problem创建员工表employee,字段如下:id(员工编号),name(员工名字),gender(员工性别),salary(员工薪资)1.2、answerCREATE TABLE IF NOT EXISTS employee( id INT, NAME VARCHAR(20), gender VARC
2022-03-04 10:23:21 537
原创 数据库<4>---MySQL数据库的基本操作DML
文章目录一、DML解释一、DML解释 DML是数据操作语言,英文全称为Data Manipulation Language,用来对数据库中的表的数据记录进行更新。插入insert删除delete更新update数据插入:...
2022-03-04 09:12:14 542
原创 Linux常用命令(六)---远程管理命令命令2
文章目录一、远程登录和复制文件二、SSH三、域名和端口3.1、域名3.2、端口号一、远程登录和复制文件序号命令对应英文作用01ssh用户名@ipsecure shell关机/重新启动02scp 用户名@ip:文件名或路径 用户名@ip:文件名或路径secure copy远程复制文件二、SSH通过SSH客户端我们可以连接到运行了SSH服务器的远程机器上SSH客户端是一种使用Secure Shell(SSH)协议连接到远程计算机的软件程序SSH,专为
2022-01-16 20:44:47 555
原创 数据库<2>---MySQL简介
文章目录一、MySQL的简介二、MySQL的特点三、MySQL常用的图形管理工具一、MySQL的简介MySQL数据库管理系统由瑞典的DataKonsultAB公司研发MySQL所使用的的SQL语言是用于访问数据库的最常用标准化语言二、MySQL的特点MySQL的数据库是用C和C++语言编写的,保证源码的可移植性支持多个操作系统。如:Windows、Linux、Mac OS等等为多种编程语言提供API。包括C语言、java、PHP、Python语言等三、MySQL常用的图形管理工具
2022-01-13 22:21:38 465
原创 Linux常用命令(五)---远程管理命令命令1
文章目录一、常见命令二、关机/重启三、网卡和IP地址3.1、网卡3.2、IP地址四、ifconfig五、ping一、常见命令关机/重启shutdown查看或配置网卡信息ifconfigping远程登录和复制文件sshscp二、关机/重启命令对应英文作用shutdown 选项 时间shutdown关机/重新启动shutdown命令可以安全关闭或者重新启动系统选项含义-r重新启动不指定选项和参数,默认表示1
2022-01-13 19:37:28 480
原创 数据库<1>---SQL简介
文章目录一、SQL的概述二、SQL的特点三、SQL语法特点四、数据库的简介五、数据库管理系统(数据库软件)5.1、关系型数据库(RDBMS)5.2、非关系型数据库(NoSQL)六、SQL和数据库管理系统的关系七、数据库系统7.1、关系型数据数据库管理系统组成一、SQL的概述SQL全称:Structured Query Language,是结构化查询语言,用于访问和处理数据库的标准的计算机语言二、SQL的特点具有综合统一性,不同数据库支持的SQL稍有不同非过程化语言语言简捷,用户容易接受
2022-01-12 22:10:44 275
原创 Linux常用命令(四)---查看文件内容命令
文章目录一、基本命令二、cat三、more四、grep五、echo文字内容六、重定向>和>>一、基本命令命令对应英文作用cat 文件名concatenate查看文件内容、创建文件、文件合并、追加文件内容等功能more 文件名more分屏显示文件内容grep 搜索的文本 文件名grep搜索文本文件内容二、catcat命令可以用来查看文件内容、创建文件、文件合并、追加文件内容等功能cat会一次显示所有的内容,适合查看内容极少的文本文
2022-01-11 22:33:07 345
原创 Linux常用命令(三)---拷贝和移动命令
文章目录一、常见命令二、tree三、cp一、常见命令序号命令对应英文作用01tree[目录名]tree以树状图列出文件目录结构02cp 源文件 目标文件copy复制文件或者目录03mv 源文件 目标文件move移动文件或者目录/文件或者目录重命名二、treetree命令可以以树状图列出文件目录结构选项含义-d只显示目录三、cpcp命令的功能是将给出的文件或目录复制到另一个文件或目录中,相当于DOS下的co
2022-01-10 21:32:58 512
原创 Linux常用命令(二)---文件和目录命令
文章目录一、常见文件和目录命令二、终端实用技巧三、ls命令3.1、定义3.2、linux下文件和目录的特点3.3、常用选项3.4、计算机中文件大小的表示方式3.5、通配符四、cd命令4.1、定义4.2、常用选项4.3、相对路径和绝对路径五、touch、mkdir和rm命令5.1、touch5.2、mkdir5.3、rm一、常见文件和目录命令查看目录内容ls切换目录cd创建和删除touchrmmkdir拷贝和移动文件cpmv查看文件内容catmoregrep
2022-01-08 22:31:08 722
原创 Linux常用命令(一)---常用命令、命令格式、命令帮助、放大缩小终端命令窗口字体
文章目录一、学习终端命令的原因二、放大缩小终端窗口字体三、常用Linux命令的基本使用四、终端命令格式五、查阅命令帮助信息5.1、- -help5.2、man一、学习终端命令的原因Linux刚面世时没有图形界面,所有的操作全靠命令完成,如 磁盘操作、目录操作、进程管理、文件权限等职场中,大量的服务器维护工作都是在远程通过SSH客户端来完成的,并没有图形界面,所有的维护工作都需要命令来完成二、放大缩小终端窗口字体ctrl+shift+= 放大终端窗口的字体显示ctrl+- 缩小终端窗口字体
2022-01-05 21:40:54 783
原创 Windows和Linux文件系统对比
文章目录一、区别二、Linux主要目录速查表一、区别 windows下,打开计算机,看到的是一个个的驱动器盘符: 每一个驱动器都有自己的根目录结构: linux下,打开计算机,看到的是一个个的文件夹: Ubuntu没有盘符这个概念,只有一个根目录/,所有的文件都在下面二、Linux主要目录速查表/: 根目录,一般根目录只存放目录,linux下有且只有
2022-01-05 19:43:27 774
原创 操作系统和Linux简介+虚拟机安装+Ubuntu安装
文章目录一、不同应用领域的操作系统1、桌面操作系统2、服务器操作系统3、嵌入式操作系统4、移动设备操作系统二、Linux简介1、虚拟机2、操作系统的发展简史3、内核版和发行版三、软件下载安装1、VMware10安装:2、添加Ubuntu的镜像一、不同应用领域的操作系统1、桌面操作系统 · Windows系列 · macOS&nb
2022-01-04 23:43:10 736
原创 Python二期学习开篇语
文章目录1、内容2、分享1、内容 <1>、Linux基础 <2>、Python基础 <3>、Python面向对象 <4>、项目实战2、分享 积硅步以致千里,积怠惰以致深渊 三天打渔,两天晒网,终将一事无成...
2022-01-04 11:54:17 430
HTML个人博客.zip
2021-06-19
教育机器人创业计划书.zip_小学教育创业计划书范文
2021-01-07
python的人脸识别签到系统
2022-04-10
TA创建的收藏夹 TA关注的收藏夹
TA关注的人