自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 用几个例题学习递归

求阶乘打印i到j数组求和反转字符串斐波那契数列最大公约数排序改递归汉诺塔代码如下:#include <iostream>#include <stdio.h>#include <vector>#include <string>using namespace std;int n, m;vector<int> a;string str;int fun1(int m) {//求阶乘 if(m == 1) ret.

2022-01-11 18:12:44 251

原创 位运算学习(五)

题目大意:数组中只有一个数出现了1次,其他的数都出现了K次,请输出只出现了1次的数。

2022-01-07 16:18:15 401

原创 位运算学习(四)

题目大意:用一条语句判断一个整数是否是2的整数次方。思路:借助位运算的方式就可以省去一次次的mod,当一个数的二进制数中只有一个1其他位全为0时,则这个整数即为2的整数次方,否则不是。那么利用这个思路就可以将这个数减一再与原来的数相与,看是否一次就可以变为0来得到想要的结果。#include <iostream>#include <stdio.h>#include <algorithm>using namespace std;const int maxn =

2022-01-06 23:10:43 415

原创 位运算学习(三)

题目大意:将一个整数的二进制数奇偶位互换。思路:借用位运算的方式,引入两个二进制数,一个是偶数位全是1即0101…01,一个偶数位全是0即1010…10,然后用初始元素分别于这两个二进制数相与,根据相与的性质,不难得出,对于两次相与的结果(设为C,D),一个是偶数位的数被保留了下来,另一个是奇数位被保留了下来,最后对保留偶数位的C整体向左移一位,对保留奇数位的D整体向右移一位。再把移位之后的C和D相互异或一下,就得到了互换的结果。代码如下:#include <iostream>#inc

2022-01-06 22:52:21 378

原创 位运算学习(二)

题目大意:请实现一个函数,输入一个整数,输出该数二进制表示中1的个数。例:9的二进制表示为1001,有2位是1这道题用枚举当然好想也好做,但当二进制数的位数多起来后,这便不是一个好的算法,可以再利用位运算的解法。思路:现将一个给的二进制数减一保存,然后将其与原来的数相与,这里可以想到1与0相与为0,1与1相与为1,这样的话,减完一之后再相与初始二进制数的低位1会被抵消,依次循环该操作,直至得到的二进制数为0,进行了几次操作,就有几个1.(笔算试试更直观)代码如下:#include <iost

2022-01-06 21:10:34 317

原创 位运算学习(一)

题目大意:在1-1000这1000个数放到大小为1001的数组中,只让唯一的一个元素值重复,而其他都只出现一次,每个数组元素只能访问依次,设计一个算法,将它找出来;不用辅助存储空间,能否设计一个算法实现?思路:题目很简单理解,可以再设置一个数组,存储每个数出现的次数,再将其遍历。而对于不开辅助数组,就可以利用位运算的解法。在位运算中,两个相同的元素相异或会变为0...

2022-01-06 20:26:33 176

原创 幸运数字Ⅱ(暴力搜索dfs)

链接:https://ac.nowcoder.com/acm/problem/15291来源:牛客网题目描述定义一个数字为幸运数字当且仅当它的所有数位都是4或者7。比如说,47、744、4都是幸运数字而5、17、467都不是。定义next(x)为大于等于x的第一个幸运数字。给定l,r,请求出next(l) + next(l + 1) + … + next(r - 1) + next®。输入描述:两个整数l和r (1 <= l <= r <= 1000,000,000)。输出

2021-03-16 17:19:21 305

原创 走出迷宫(简单迷宫题)

链接:https://ac.nowcoder.com/acm/problem/14572来源:牛客网题目描述小明现在在玩一个游戏,游戏来到了教学关卡,迷宫是一个N*M的矩阵。小明的起点在地图中用“S”来表示,终点用“E”来表示,障碍物用“#”来表示,空地用“.”来表示。障碍物不能通过。小明如果现在在点(x,y)处,那么下一步只能走到相邻的四个格子中的某一个:(x+1,y),(x-1,y),(x,y+1),(x,y-1);小明想要知道,现在他能否从起点走到终点。输入描述:本题包含多组数据。每

2021-03-16 09:56:57 2309

原创 「金」点石成金(暴力搜索)

链接:https://ac.nowcoder.com/acm/problem/53680来源:牛客网题目描述赛时提示:魔法值和财富值初始为0帕秋莉掌握了一种金属性魔法她决定去捡一些石头,施展点石成金魔法帕秋莉将捡到的n块石头排成一排,并决定将一些石头点为黄金对于第i块石头,如果将其变为黄金,会增加ai的财富,消耗bi的魔法(需要说明的是,就算魔法值不够,也可以操作,操作后魔法值归零)否则,帕秋莉将会回复ci的魔法,但减少di的财富(财富值同理,可以无限制减少)帕秋莉想知道,按照1-n的顺序

2021-03-14 20:53:52 182

原创 加边的无向图(并查集的简单模板)

链接:https://ac.nowcoder.com/acm/problem/14685来源:牛客网题目描述给你一个 n 个点,m 条边的无向图,求至少要在这个的基础上加多少条无向边使得任意两个点可达~输入描述:第一行两个正整数 n 和 m 。接下来的m行中,每行两个正整数 i 、 j ,表示点i与点j之间有一条无向道路。输出描述:输出一个整数,表示答案示例1输入4 21 23 4输出1备注:对于100%的数据,有n,m<=100000。题解:起初看到图论相关没往并

2021-03-12 17:55:20 255

原创 Zut2020第二次周赛

前言:这次训练主题为二分答案,简单理解为利用二分的方法去枚举答案(最优解一定可行,但可行解不一定最优),每一次判断答案是否可行。需要注意的是二分答案是在一个单调闭区间上进行的,二分答案最后获得的结果是一个确定值,并不像搜索那样出现多解。A - 二分(经典题)(来源:POJ 2456)题目大意:有n个位置排列在一条直线上,将c头牛分配到位置上,使它们之间的最小距离尽可能的大。求最大的最小间距...

2020-04-24 20:32:13 147

原创 Zut2020第一次周赛

A - LIS O(n^2) 模板 (来源:POJ 2533)题目大意:给定一个n,并用数组保存给的n个数,按照下标从小到大选出一个序列,序列中的元素个数尽可能的多,这个序列里数的大小是递增的。即最长上升子序列问题。个人理解:模板题,需要注意的是选到的数顺序不能改变,相邻元素不能相等。代码如下:#include <iostream>#include <stdio...

2020-04-17 16:23:55 129

空空如也

空空如也

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

TA关注的人

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