自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(134)
  • 收藏
  • 关注

原创 最小的值

最小的值解题思路:分情况讨论ai与bi的大小关系,然后去解题代码:#include <iostream>#include <cstdio>#include <algorithm>using namespace std;int main(){ int n; int a[110],b[110]; cin>>n; for(int i=0;i<n;i++) cin>>a[i];

2021-07-22 17:08:31 129

原创 数字矩阵

数字矩阵本题出自cf中,我第一眼看到这一题,我脑子里想完了,情况也太多了,后来看了y总的视频发现这道题就是:让你判断你输入的数中有几个负数,以及去找出其中绝对值最小的数,因为两个负数总可以通过一条折线连接起来,去改变这两个负数的值而保持这条折线中的其它数的符号不变(因为我们可以发现这条折线中的其他数总会改变两次符号,也即符号不变),以此为思路,我们解题代码如下。给定一个 n×m 的整数矩阵,其中第 i 行第 j 列的元素为 aij。你可以进行任意多次如下操作:选择矩阵中的两个相邻元素,将它们均乘以

2021-07-21 18:49:34 833 4

原创 7天带你学会数据结构---第1天(链表)

第一天。还有6天你就学完数据结构了,tql1.单链表2.双链表1.单链表什么是单链表:单链表是由各个内存结构通过一个next指针链接在一起组成,每一个内存结构都存在后继内存结构之中,链表的每个节点由数据域和指针域两部分组成。如果想要详细了解可以看我的这篇文章:单链表及其基本操作为什么我们要用数组模拟链表:因为用结构体的方式去实现链表会导致速度比较慢,容易超时,而用数组模拟链表可以有效提高速度下面我们通过一个例题去学习单链表:实现一个单链表,链表初始为空,支持三种操作:1.向链表头插入一个数

2021-07-20 20:43:36 929

原创 leetcode342题 4的幂

leetcode342题 4的幂给定一个整数,写一个函数来判断它是否是 4 的幂次方。如果是,返回 true ;否则,返回 false 。整数 n 是 4 的幂次方需满足:存在整数 x 使得 n == 4^x示例 1:输入:n = 16输出:true示例 2:输入:n = 5输出:false示例 3:输入:n = 1输出:trueclass Solution {public: bool isPowerOfFour(int n) { if(n<=0

2021-05-31 19:00:18 227

原创 leetcode 231题 2 的幂

leetcode 231. 2 的幂给你一个整数 n,请你判断该整数是否是 2 的幂次方。如果是,返回 true ;否则,返回 false 。如果存在一个整数 x 使得 n == 2^x ,则认为 n 是 2 的幂次方。解析:一个数 n 是 2 的幂,当且仅当 n 是正整数,并且 n 的二进制表示中仅包含 1 个 1。因此我们可以考虑使用位运算,将 n 的二进制表示中最低位的那个 1 提取出来,再判断剩余的数值是否为 0 即可。示例 1:输入:n = 1输出:true解释:20 = 1

2021-05-31 09:53:27 408

原创 链表及其基本操作

1.链表的定义链表:由一系列结点组成,每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。//我们用结构体去存储每一个节点//此处进行结构体的定义并进行重命名typedef struct Node{ int data; struct Node*next;}Node;2.创建单链表创建单链表常见的有头插法和尾插法两种,下面我们进行简单介绍:(1).头插法步骤:(假设要加入的新节点的数据域是x)1.创建头节点head,并且将头结点hea

2021-05-30 09:17:34 721 18

原创 leetcode477题 汉明距离总和

leetcode477. 汉明距离总和两个整数的 汉明距离 指的是这两个数字的二进制数对应位不同的数量。计算一个数组中,任意两个数之间汉明距离的总和。示例:输入: 4, 14, 2输出: 6解释: 在二进制表示中,4表示为0100,14表示为1110,2表示为0010。(这样表示是为了体现后四位之间关系) 所以答案为:HammingDistance(4, 14) + HammingDistance(4, 2) +HammingDistance(14, 2)= 2 + 2 + 2 = 6.

2021-05-28 21:12:17 168

原创 CodeForces 1374C(括号序列匹配问题)

试题链接给你一个长度为n的括号序列s,其中n是偶数(能被2整除)字符串s由n/2的开括号’(‘和n/2的闭括号’)'组成。你每次可以选择其中一个括号将其移动到字符串的开头或结尾,你的任务是从s中找到获得正则括号序列所需的最小移动次数,可以证明在给定的约束条件下,这个答案总是存在的。回想一下正则括号序列是什么:“()”是正则括号序列;如果s为正则括号序列,则“(”+ s +“)”为正则括号序列;如果s和t是正则括号序列,那么s + t就是正则括号序列。例如,“()()”、“(())()”,“(

2021-05-12 15:10:23 1152 4

原创 校赛总结之吕老师的01串Ⅱ

题目链接题目描述吕老师还有一个01串,串中只包含’0’和’1’,令x表示一个子串中0和1个数的差值的绝对值,吕老师想选出一个子串,使得该子串的x是所有子串中最大的(子串定义为串中任意个连续的字符组成的子序列)输入第一行输入一个01串S (1 ≤ |S| ≤ 100000),|S|代表串S的长度输出输出一个整数,代表吕老师选的子串的x的值样例输入00110111样例输出4提示 我们可以选择后六位字符构成的子串"110111",这样这个子串的x值是4,是所有子串中最大的#includ

2021-05-07 20:14:34 208 5

原创 leetcode第7题 整数反转

int占4字节32位,根据二进制编码的规则,INT_MAX = 2^31-1=2147483647INT_MIN= -2^31=-2147483648C/C++中,所有超过该限值的数,都会出现溢出,出现warning,但是并不会出现error。如果想表示的整数超过了该限值,可以使用长整型long long 占8字节64位。...

2021-05-05 14:17:26 239

原创 数组中只出现一次的两个数字

数组中只出现一次的两个数字一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。你可以假设这两个数字一定存在。样例输入:[1,2,3,3,4,4]输出:[1,2]解析:对于本题我们可以利用异或^的性质,也即两个相同的数异或为0,一个数与0异或还是等于原来的数。 本题中由于只有两个数出现了一次,而其它数均出现了两次,因此我们可以利用sum=0区异或数组nums中的每一个数,可以得到sum=x^y(x和y即为我们所求的两个数),由于x!=y,因此x和y中

2021-05-01 20:45:55 832

原创 第十二届蓝桥杯大赛软件赛省赛 C/C++ 大学 B 组解析

第十二届蓝桥杯大赛软件赛省赛 C/C++ 大学 B 组试题 A: 空间试题 B: 卡片试题 A: 空间【问题描述】小蓝准备用 256MB 的内存空间开一个数组,数组的每个元素都是 32 位二进制整数,如果不考虑程序占用的空间和维护内存需要的辅助空间,请问256MB 的空间可以存储多少个 32 位二进制整数?【答案提交】这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。解析:要求256MB的空间可以存储多少个 32

2021-04-30 19:29:56 2095 7

原创 L2-1 包装机 (25 分)

L2-1 包装机 (25 分)一种自动包装机的结构如图 1 所示。首先机器中有 N 条轨道,放置了一些物品。轨道下面有一个筐。当某条轨道的按钮被按下时,活塞向左推动,将轨道尽头的一件物品推落筐中。当 0 号按钮被按下时,机械手将抓取筐顶部的一件物品,放到流水线上。图 2 显示了顺序按下按钮 3、2、3、0、1、2、0 后包装机的状态。图 2 顺序按下按钮 3、2、3、0、1、2、0 后包装机的状态一种特殊情况是,因为筐的容量是有限的,当筐已经满了,但仍然有某条轨道的按钮被按下时,系统应强制启动 0

2021-04-27 20:37:24 1970

原创 L1-8 乘法口诀数列 (20 分)

L1-8 乘法口诀数列 (20 分)本题要求你从任意给定的两个 1 位数字 a​1和 a​2开始,用乘法口诀生成一个数列 {a​n​​},规则为从 a1开始顺次进行,每次将当前数字与后面一个数字相乘,将结果贴在数列末尾。如果结果不是 1 位数,则其每一位都应成为数列的一项。输入格式:输入在一行中给出 3 个整数,依次为 a​1、a​2和 n,满足 0≤a1,a​2​​ ≤9,0<n≤10​^3。输出格式:在一行中输出数列的前 n 项。数字间以 1 个空格分隔,行首尾不得有多余空格。输入样例

2021-04-26 21:01:30 2033

原创 L1-6 吉老师的回归 (15 分)

L1-6 吉老师的回归 (15 分)曾经在天梯赛大杀四方的吉老师决定回归天梯赛赛场啦!为了简化题目,我们不妨假设天梯赛的每道题目可以用一个不超过 500 的、只包括可打印符号的字符串描述出来,如:Problem A: Print “Hello world!”。众所周知,吉老师的竞赛水平非常高超,你可以认为他每道题目都会做(事实上也是……)。因此,吉老师会按照顺序看题并做题。但吉老师水平太高了,所以签到题他就懒得做了(浪费时间),具体来说,假如题目的字符串里有 qiandao 或者 easy(区分大小写

2021-04-26 20:37:13 1836 2

原创 L1-3 强迫症 (10 分)

L1-3 强迫症 (10 分)小强在统计一个小区里居民的出生年月,但是发现大家填写的生日格式不统一,例如有的人写 199808,有的人只写 9808。有强迫症的小强请你写个程序,把所有人的出生年月都整理成 年年年年-月月 格式。对于那些只写了年份后两位的信息,我们默认小于 22 都是 20 开头的,其他都是 19 开头的。输入格式:输入在一行中给出一个出生年月,为一个 6 位或者 4 位数,题目保证是 1000 年 1 月到 2021 年 12 月之间的合法年月。输出格式:在一行中按标准格式 年年

2021-04-26 18:50:12 1557

原创 字符统计

题目描述给出一段字符,请统计这段字符有几行,几个单词和几个字符。定义单词为用空格或者换行符隔开的连续字符字符定义为包括一般可见字符以及空格输入描述:第一行一个正整数 T ,代表测试数据的组数第二行开始为第一组测试数据,测试数据每行不超过1024个字符每两组测试数据之间用连续的 5 个 = 分隔,保证测试数据中不会出现连续的 5 个 =输出描述:每组测试数据在一行中输出由空格分隔的3个整数,分别代表行数,单词数和字符数示例1输入2This is a sample input.

2021-04-25 21:03:55 765

原创 丑数

acwing62题:丑数 (剑指offer)我们把只包含质因子 2、3 和 5 的数称作丑数(Ugly Number)。例如 6、8 都是丑数,但 14 不是,因为它包含质因子 7。求第 n 个丑数的值。样例输入:5输出:5注意:习惯上我们把 1 当做第一个丑数。解析:本题采用归并排序的思想,将元素1以及分别将2,3,5的倍数所组成的数组中的元素合并(去重后)到一个新的数组中,则这个数组就是由丑数所组成的集合class Solution {public: int getUg

2021-04-11 21:21:36 115

原创 leetcode343题 整数拆分

整数拆分给定一个正整数 n,将其拆分为至少两个正整数的和,并使这些整数的乘积最大化。 返回你可以获得的最大乘积。示例 1:输入: 2输出: 1解释: 2 = 1 + 1, 1 × 1 = 1。示例 2:输入: 10输出: 36解释: 10 = 3 + 3 + 4, 3 × 3 × 4 = 36。说明: 你可以假设 n 不小于 2 且不大于 58。来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/integer-break著作

2021-04-10 21:18:28 188

原创 二维数组中的查找

二维数组中的查找在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。样例输入数组:[ [1,2,8,9], [2,4,9,12], [4,7,10,13], [6,8,11,15]]如果输入查找数值为7,则返回true,如果输入查找数值为5,则返回false。class Solution {public: bool searchArray(v.

2021-04-10 17:02:44 119

原创 leetcode190题 颠倒二进制位

颠倒二进制位颠倒给定的 32 位无符号整数的二进制位。提示:请注意,在某些语言(如 Java)中,没有无符号整数类型。在这种情况下,输入和输出都将被指定为有符号整数类型,并且不应影响您的实现,因为无论整数是有符号的还是无符号的,其内部的二进制表示形式都是相同的。在 Java 中,编译器使用二进制补码记法来表示有符号整数。因此,在上面的 示例 2 中,输入表示有符号整数 -3,输出表示有符号整数-1073741825。进阶:如果多次调用这个函数,你将如何优化你的算法?示例 1:输入

2021-04-10 16:47:41 203 6

原创 leetcode第80题 删除有序数组中的重复项 II

删除有序数组中的重复项 II给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 最多出现两次 ,返回删除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。说明:为什么返回数值是整数,但输出的答案是数组呢?请注意,输入数组是以「引用」方式传递的,这意味着在函数里修改输入数组对于调用者是可见的。你可以想象内部操作如下:// nums 是以“引用”方式传递的。也就是说,不对实参做任何拷贝 int len = rem

2021-04-10 16:10:58 326

转载 C++上下取整和四舍五入函数用法

#include<iostream>#include<cmath>using namespace std;int main(){ double a=2.5; cout<<ceil(a)<<endl; //向上取整 cout<<floor(a)<<endl; //向下取整 cout<<round(a)<<endl; //四舍五入 //不使用函数实现

2021-04-01 14:33:47 455

原创 不用加减乘除做加法

acwing85题:不用加减乘除做加法写一个函数,求两个整数之和,要求在函数体内不得使用 +、-、×、÷ 四则运算符号。样例输入:num1 = 1 , num2 = 2输出:3解析:1.num1 + num2 分为2个部分,num1^num2是不进位加法,(num1&num2) << 1是进位,二者相加就起到了相同的作用。2.因为num1 + num2 = num1^num2 + ((num1&num2) << 1),所以说 还是会用到加号+,对此我

2021-03-22 15:07:32 117

原创 L1-059 敲笨钟 (20 分)

微博上有个自称“大笨钟V”的家伙,每天敲钟催促码农们爱惜身体早点睡觉。为了增加敲钟的趣味性,还会糟改几句古诗词。其糟改的方法为:去网上搜寻压“ong”韵的古诗词,把句尾的三个字换成“敲笨钟”。例如唐代诗人李贺有名句曰:“寻章摘句老雕虫,晓月当帘挂玉弓”,其中“虫”(chong)和“弓”(gong)都压了“ong”韵。于是这句诗就被糟改为“寻章摘句老雕虫,晓月当帘敲笨钟”。现在给你一大堆古诗词句,要求你写个程序自动将压“ong”韵的句子糟改成“敲笨钟”。输入格式:输入首先在第一行给出一个不超过 20 的

2021-03-15 22:26:08 282 2

原创 L1-058 6翻了 (15 分)

“666”是一种网络用语,大概是表示某人很厉害、我们很佩服的意思。最近又衍生出另一个数字“9”,意思是“6翻了”,实在太厉害的意思。如果你以为这就是厉害的最高境界,那就错啦 —— 目前的最高境界是数字“27”,因为这是 3 个 “9”!本题就请你编写程序,将那些过时的、只会用一连串“6666……6”表达仰慕的句子,翻译成最新的高级表达。输入格式:输入在一行中给出一句话,即一个非空字符串,由不超过 1000 个英文字母、数字和空格组成,以回车结束。输出格式:从左到右扫描输入的句子:如果句子中有超过.

2021-03-15 22:22:09 236

原创 L1-015 跟奥巴马一起画方块 (15 分)

美国总统奥巴马不仅呼吁所有人都学习编程,甚至以身作则编写代码,成为美国历史上首位编写计算机代码的总统。2014年底,为庆祝“计算机科学教育周”正式启动,奥巴马编写了很简单的计算机代码:在屏幕上画一个正方形。现在你也跟他一起画吧!输入格式:输入在一行中给出正方形边长N(3≤N≤21)和组成正方形边的某种字符C,间隔一个空格。输出格式:输出由给定字符C画出的正方形。但是注意到行间距比列间距大,所以为了让结果看上去更像正方形,我们输出的行数实际上是列数的50%(四舍五入取整)。输入样例:10 a输出

2021-03-11 16:35:57 299

原创 并查集

例题:acwing836题(合并集合)一共有n个数,编号是1~n,最开始每个数各自在一个集合中。现在要进行m个操作,操作共有两种:“M a b”,将编号为a和b的两个数所在的集合合并,如果两个数已经在同一个集合中,则忽略这个操作;“Q a b”,询问编号为a和b的两个数是否在同一个集合中;输入格式第一行输入整数n和m。接下来m行,每行包含一个操作指令,指令为“M a b”或“Q a b”中的一种。输出格式对于每个询问指令”Q a b”,都要输出一个结果,如果a和b在同一集合内,则输出“Ye

2021-03-03 14:29:03 138 2

原创 容斥原理

例题:acwing890题(能被整除的数)给定一个整数n和m个不同的质数p1,p2,…,pm。请你求出1~n中能被p1,p2,…,pm中的至少一个数整除的整数有多少个。输入格式第一行包含整数n和m。第二行包含m个质数。输出格式输出一个整数,表示满足条件的整数的个数。数据范围1≤m≤16,1≤n,pi≤10^9输入样例:10 22 3输出样例:7#include <bits/stdc++.h>using namespace std;typedef long l

2021-03-02 20:55:21 136

原创 约数

试除法求约数例题:acwing869题(试除法求约数)给定n个正整数ai,对于每个整数ai,请你按照从小到大的顺序输出它的所有约数。输入格式第一行包含整数n。接下来n行,每行包含一个整数ai。输出格式输出共n行,其中第 i 行输出第 i 个整数ai的所有约数。数据范围1≤n≤100,2≤ai≤2∗10^9输入样例:268输出样例:1 2 3 61 2 4 8#include <bits/stdc++.h>using namespace std;vecto

2021-02-27 21:22:34 269

原创 质数

质数的判定-试除法例题:acwing867题(试除法判定质数)给定n个正整数ai,判定每个数是否是质数。输入格式第一行包含整数n。接下来n行,每行包含一个正整数ai。输出格式共n行,其中第 i 行输出第 i 个正整数ai是否为质数,是则输出“Yes”,否则输出“No”。数据范围1≤n≤100,1≤ai≤231−1输入样例:226输出样例:YesNo#include <bits/stdc++.h>using namespace std;bool is_pr

2021-02-27 19:29:49 179

原创 DFS与BFS

DFS例题1:acwing842题(排列数字)给定一个整数n,将数字1~n排成一排,将会有很多种排列方法。现在,请你按照字典序将所有的排列方法输出。输入格式共一行,包含一个整数n。输出格式按字典序输出所有排列方案,每个方案占一行。数据范围1≤n≤7输入样例:3输出样例:1 2 31 3 22 1 32 3 13 1 23 2 1#include <bits/stdc++.h>using namespace std;int n;int path[10]

2021-02-25 10:43:00 132

转载 c++内置函数实现字符串翻转(reverse,strrev,string 构造函数)

c++内置函数实现字符串翻转(reverse,strrev,string 构造函数)在写程序的时候,我们经常需要将字符串进行翻转。c++中内置的函数有不少个可以实现该功能。1.strrev函数。(cstring)#include <iostream>#include <cstring>using namespace std; int main(){ string s="abcd"; strrev(s); cout<<s&lt

2021-02-23 17:26:49 1265

转载 vector_empty

// vector::empty#include <iostream>#include <vector>using namespace std;//测试向量是否为空//返回该向量是否为空(即其大小是否为0)。//该函数不以任何方式修改容器。若要清除向量的内容,请参见向量::clear。int main (){ vector<int> myvector; int sum (0); for (int i=1;i<=10;i++) my

2021-02-22 10:04:16 2100

原创 第四,五周学习总结

1,本周观看了acwing上的位运算,离散化,区间合并部分的视频并完成了对应的模板题。2,在acwing上写了二十几道题。3,在csdn上写了几篇博客走方格数组去重每日一题3双指针算法,位运算,离散化,区间合并4,在leetcode上写了几道题。5,数字三角形给定一个如下图所示的数字三角形,从顶部出发,在每一结点可以选择移动至其左下方的结点或移动至其右下方的结点,一直走到底层,要求找出一条路径,使路径上的数字的和最大。 7 3 8 8 1

2021-02-21 19:55:34 120 2

原创 每日一题4

acwing3257题:跳一跳近来,跳一跳这款小游戏风靡全国,受到不少玩家的喜爱。简化后的跳一跳规则如下:玩家每次从当前方块跳到下一个方块,如果没有跳到下一个方块上则游戏结束。如果跳到了方块上,但没有跳到方块的中心则获得 1 分;跳到方块中心时,若上一次的得分为 1 分或这是本局游戏的第一次跳跃则此次得分为 2 分,否则此次得分比上一次得分多两分(即连续跳到方块中心时,总得分将 +2,+4,+6,+8…)。现在给出一个人跳一跳的全过程,请你求出他本局游戏的得分(按照题目描述的规则)。输入格式输入

2021-02-20 21:41:02 265

转载 位运算(&、|、^、~、>>、<<)

> 位运算(&、|、^、~、>>、<<) 原链接: https://www.cnblogs.com/yrjns/p/11246163.html 1.位运算概述 从现代计算机中所有的数据二进制的形式存储在设备中。即0、1两种状态,计算机对二进制数据进行的运算(+、-、*、/)都是叫位运算,即将符号...

2021-02-19 11:51:53 5946

原创 c++中fabs()和abs()的区别

abs( )函数主要是对int类型求绝对值,abs( )在头文件<stdlib.h>(或 <cstdlib>)里面(但是也可以对float,double类型求绝对值)fabs( )函数主要是对float,double类型求绝对值,fabs( )在头文件<cmath>里边(但是又可以对int类型求绝对值)如有问题,欢迎在评论区提问...

2021-02-18 21:49:17 3775 1

原创 前缀和与差分

1.前缀和一维前缀和例题:acwing795题(前缀和)输入一个长度为 n 的整数序列。接下来再输入 m 个询问,每个询问输入一对 l,r。对于每个询问,输出原序列中从第 l 个数到第 r 个数的和。输入格式第一行包含两个整数 n 和 m。第二行包含 n 个整数,表示整数数列。接下来 m 行,每行包含两个整数 l 和 r,表示一个询问的区间范围。输出格式共m行,每行输出一个询问的结果。数据范围1≤l≤r≤n,1≤n,m≤100000,−1000≤数列中元素的值≤1000输入样

2021-02-18 16:10:52 250 2

原创 每日一题3

acwing3203题:画图在一个定义了直角坐标系的纸上,画一个 (x1,y1) 到 (x2,y2) 的矩形指将横坐标范围从 x1 到 x2,纵坐标范围从 y1 到 y2 之间的区域涂上颜色。下图给出了一个画了两个矩形的例子。第一个矩形是 (1,1) 到 (4,4),用绿色和紫色表示。第二个矩形是 (2,3) 到 (6,5),用蓝色和紫色表示。图中,一共有 15 个单位的面积被涂上颜色,其中紫色部分被涂了两次,但在计算面积时只计算一次。在实际的涂色过程中,所有的矩形都涂成统一的颜色,图中显示不同

2021-02-18 12:05:38 368

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除