算法
蒜蓉蒸大虾
这个作者很懒,什么都没留下…
展开
-
PTA 团体程序设计天梯赛-练习集答案 整理
PTA 团体程序设计天梯赛-练习集 整理L1-001 Hello World (5分)这道超级简单的题目没有任何输入。你只需要在一行中输出著名短句“Hello World!”就可以了。输入样例:无输出样例:Hello World!#include <iostream>using namespace std;int main(){ cout << "Hello World!" << endl; return 0;}L1-002 打印沙原创 2020-11-21 11:36:57 · 7860 阅读 · 0 评论 -
试题J: 网络分析 C++
试题J: 网络分析时间限制: 1.0s 内存限制: 256.0MB 本题总分:25 分【问题描述】小明正在做一个网络实验。他设置了n 台电脑,称为节点,用于收发和存储数据。初始时,所有节点都是独立的,不存在任何连接。小明可以通过网线将两个节点连接起来,连接后两个节点就可以互相通信了。两个节点如果存在网线连接,称为相邻。小明有时会测试当时的网络,他会在某个节点发送一条信息,信息会发送到每个相邻的节点,之后这些节点又会转发到自己相邻的节点,直到所有直接或间接相邻的节点都收到了信息。所有发送和原创 2020-09-29 13:53:22 · 461 阅读 · 0 评论 -
试题I: 整数拼接 C++
试题I: 整数拼接时间限制: 1.0s 内存限制: 256.0MB 本题总分:25 分【问题描述】给定义个长度为n 的数组A1; A2; ; An。你可以从中选出两个数Ai 和Aj(i 不等于j),然后将Ai 和Aj 一前一后拼成一个新的整数。例如12 和345 可以拼成12345 或34512。注意交换Ai 和Aj 的顺序总是被视为2 种拼法,即便是Ai = Aj 时。请你计算有多少种拼法满足拼出的整数是K 的倍数。【输入格式】第一行包含2 个整数n 和K。第二行包含n 个原创 2020-09-29 13:52:44 · 1015 阅读 · 4 评论 -
插入排序与冒泡排序 C++实现
插入排序与冒泡排序插入排序与冒泡排序都是时间复杂度为O(n)且为原地排序的排序算法,在大量的数据下,插入排序比冒泡排序效率更高。因为冒泡排序的数据比较次数很难因为数据原因发生改变,而插入排序会因为数据的有序程度发生改变数据比较次数#include <iostream>#include <vector>using namespace std;void MaoPaoSort(vector<int> &v){ for (int i = 0; i &原创 2020-09-22 09:20:30 · 175 阅读 · 0 评论 -
踩雷 整数和浮点数之间的转换 精度丢失C++
踩雷 整数和浮点数之间的转换 精度丢失C++我们在使用浮点数和整数之间会有一个雷区,那就是当分子分母都是整数时,答案也是整数cout << 1 / 2 << endl; //输出0这时候我们应该要给1或者2变成一个浮点数cout << 1.0 / 2 << endl; //输出0.5遇到这个坑主要是在刷leetcode的时候碰到的,该原题在https://leetcode-cn.com/problems/deep-dark-fraction/。是原创 2020-09-14 13:14:27 · 1385 阅读 · 0 评论 -
LeetCode 709 转换成小写字母 C++ 0ms执行用时
一次遍历,扫描大写字母,通过-‘A’和+‘a’来改变,百分百的运行效率时间复杂度O(n),空间复杂度O(n)(原字符串的大小)class Solution {public: string toLowerCase(string str) { for(auto &i : str) { if(i >= 'A' && i <= 'Z') { i = i -原创 2020-09-11 11:43:28 · 190 阅读 · 0 评论 -
leetcode 1480 一维数组动态和
比较暴力的解法但是发现效率蛮高的,也很久没写博客了。发一发水文。class Solution {public: vector<int> runningSum(vector<int>& nums) { vector<int> num(nums.size(),0); int temp = 0 , time = 0; for(auto i : nums) { temp +原创 2020-09-02 18:24:25 · 175 阅读 · 0 评论 -
程序员算法趣题 Q07 日期的二进制转换 C++实现
本博客仅供个人记录学习上遇到的问题和复盘这道题做了好久,调试了好久。其实也就是将日期转换成二进制字符串,然后判断二进制字符串是否是回文串。其中有一些坑,比如stream的重置流的标志状态(注意不是清空流),还有日期月份小于10得加多0等。#include <iostream>#include <vector>#include <string>#include <sstream>#include <cmath>using namesp原创 2020-08-24 10:44:06 · 300 阅读 · 0 评论 -
程序员的算法趣题 Q05 还在用现金支付吗 C++实现
问题描述书中题目的意思也就是给你一些日元,然后去换面值为10、50、100、500元的硬币。只不过限制15个硬币。求一共有多少种组合。算法思路我主要是通过,一个深度搜索,一个set集合并通过判断硬币个数来实现整个过程全排列。同时也发现了之前我博客中有篇文章的写法有bug这篇博客传送门代码实现#include <iostream>#include <vector>#include <set>using namespace std;set<vecto原创 2020-08-24 01:43:00 · 186 阅读 · 0 评论 -
程序员的算法趣题 Q4 切分木棒 C++实现
这道题的本意就是有n米长的木棒,有m个人。这m个人要经过cnt次把n米长的木棒分成n根1米长的木棒这篇博客主要是记录本书中神奇的解法。#include <iostream>#include <vector>using namespace std;//切分木棒void solve(int n , int m , int current ,int count){ if(current >= n) { cout << co原创 2020-08-24 01:30:38 · 344 阅读 · 0 评论 -
求解最大乘积问题 C++实现
给定一个无序数组,包含正数、负数和0,要求从中找到3个数的乘积,使得乘积最大,并且时间复杂度为O(n),空间复杂度为O(1)。原创 2020-06-24 00:14:28 · 2715 阅读 · 2 评论 -
小v拿奖学金 C++实现
小v今年有n门课(编号为0~n-1),每门课都有考试。为了拿到奖学金,小v必须满足所有课程平均成绩至少为avg。每门课由平时成绩和考试成绩相加得到,满足为r。现知道每门课平均成绩ai(0<=i<=n-1),若想让这门课多考一分,小v需要花bi的时间复习,如果不复习,当然就是0。同时,也可能发现复习再多也不会超过满分的分数。为了拿到奖学金,小v至少需要花多少时间??原创 2020-06-21 02:05:31 · 2844 阅读 · 1 评论 -
求解汽车加油问题C++
问题描述已知一辆汽车加满油后可行驶d(如d=7)公里,而旅途中有若干个加油站。试设计一个有效算法,指出应在哪些加油站停靠加油使加油次数最少。用数组a存放各加油站之间的距离,如a[ ]={2,7,3,6},表示共有4个加油站,起点到1号加油站的距离为2km,1号到2号加油站的距离为7km,2号到3号加油站的距离为3km,3号到4号加油站的距离为6km。算法思想贪心法解决,只需要考虑能不能到下一个站的情况下还能到下下个站,如果可以则在下下个站继续判断是否还可以走,如果不可以情况则是(只能经过一个站,并在那原创 2020-06-21 00:15:22 · 4415 阅读 · 0 评论 -
我的《C++ primer》笔记第五章:语句
文章目录写在前面5.1 简单语句5.3 条件语句悬垂else5.3.2 switch语句switch控制流switch内部的变量定义5.4 迭代语句5.4.1 while语句5.4.2 传统的for语句范围for语句5.4.4 do while语句5.5 跳转语句5.5.1 break语句5.5.2 continue语句5.5.3 goto语句5.6 try语句块和异常处理5.6.2 try语句块写在前面今天主要是介绍了在C++程序运行过程中的一些常用语句。5.1 简单语句空语句 在写空语句的时候应原创 2020-06-17 21:31:19 · 144 阅读 · 0 评论 -
求解最少翻译问题 C++
问题描述据美国动物分类学家欧内斯特-迈尔推算,世界上有超过100万种动物,各种动物有自己的语言 所以,动物A、C之间通信需要动物B来当翻译。问两个动物之间项目通信至少需要多少个翻译。测试数据中第一行包含两个整数n(2<= n <= 200)、m(1 <= m <= 300),其中n代表动物的数量,动物编号从0开始,n个动物编号为0 ~ n-1,m表示可以相互通信动物数,接下来的m行中包含两个数字分别代表两种动物可以相互通信,在接下来包含一个整数k(k <= 20),代表查询原创 2020-06-04 00:21:57 · 3906 阅读 · 0 评论 -
全排列并清洗求解幸运的袋子问题 C++
文章目录问题描述输入描述输出描述输入样例样例1样例2输出样例样例1样例2算法思路样例解释问题描述一个袋子里面有n个球,每个球上面都有一个号码(拥有相同号码的球是无区别的)。如果一个袋子是幸运的当且仅当所有球的号码的和大于所有球的号码的积。例如:如果袋子里面的球的号码是{1, 1, 2, 3},这个袋子就是幸运的,因为1 + 1 + 2 + 3 > 1 * 1 * 2 * 3 你可以适当从袋子里移除一些球(可以移除0个,但是别移除完),要使移除后的袋子是幸运的。现在让你编程计算一下你可以获得的原创 2020-05-13 23:45:42 · 523 阅读 · 0 评论 -
回溯法求解密码问题,C++语言
问题描述给定一个整数n和一个由不同大写字母组成的字符串str(长度大于5、小于12),每一个字母在字母表中对应有一个序数(A=1,B=2,…,Z=26),从str中选择5个字母构成密码,例如选取的5个字母为v、w、x、y和z,他们要满足v的序号-(w的序数)2+(x的序数)3-(y的序数)4+(z的序数)5=n。例如,给定的n=1、字符串str为"ABCDEFGHIJKL",一个可能的解是“FIECB”,因为6-92+53-34+25=1,但这样的解可能有多个,最终结果是按字典序最大的那个,所以这里的正确原创 2020-05-13 22:19:56 · 2669 阅读 · 0 评论 -
求解填字游戏 C++
问题描述在3*3个方格的方阵中填入数字1-10的某9个数字,每个方格填一个整数,使所有相邻两个方格内的两个整数之和为素数。编写一个程序,求出所有满足这个要求的数字的填法。算法思路深度遍历九宫格,符合条件的数字填上,然后不断回溯,找出所有情况#include<iostream>#include<cmath>using namespace std;int arr...原创 2020-05-07 04:24:30 · 3019 阅读 · 4 评论 -
求解会议安排问题 C++实现
问题描述陈老师是一个比赛队的主教练,有一天,他想给团队成员开会,应该为这次会 议安排教室,但教室缺乏,所以教室管理员必须通过接受订单和拒绝订单优化教室的利用率。 如果接受一个订单,则该订单 的开始时间和结束时间成为一个活动。注意,每个时间段只 能安排一个订单。请找出一个最大化的总活动时间的方法。你的任务是这样的:读入订单, 计算所有活动(接受的订单)占用时间的最大值。输入描述标准等的输入将包...原创 2020-05-07 03:10:58 · 5427 阅读 · 0 评论 -
快速入门贪心法,学习总结
写在前面最近开始学习算法,备战算法比赛。此文是对贪心法的初次学习。如有错误请多多包涵,并予以指正。谢谢!贪心法概括贪心法就是遵循某种规则,不断贪心的选取当前最优策略的算法设计方法。硬币问题问题描述有1元、5元、10元、50元、100元、500元的硬币各C1、C5、C10、C50、C100、C500枚,先要用这些硬币来支付A元,最少需要多少枚硬币?假定本题存在解。输入C1=3,C2=...原创 2020-04-27 01:08:32 · 375 阅读 · 0 评论 -
快速入门之C++栈、队列的使用,并初探深度优先搜索(DFS)和广度优先搜索(BFS)学习总结
写在前面最近开始学习算法,备战算法比赛。以下是我对栈和队列,以及运用栈和队列初探深度优先搜索(DFS)和广度优先搜索(BFS)C++栈的基本使用栈遵循FILO原则,也就是先进后出。也可以被理解成LIFO,也就是后进先出C++中 stack 头文件有他的具体实现,这里只是讲讲怎么简单的去运用它,其中stack.top()只是显示栈顶并不弹出,要用stack.pop()来弹出#includ...原创 2020-04-26 22:43:20 · 501 阅读 · 0 评论 -
快速入门之递归,学习总结
写在前面最近开始了算法系统学习,备战算法比赛。此文是本人在学习递归算法时的小节,供大家一起学习,如有错误,请联系我及时更正!!感谢=V=递归算法之求n的阶乘话不多说直接上代码int fact(int n){ if(n == 0) { return 1; } return fact(n - 1) * n;}递归算法之求斐波那契数列类...原创 2020-04-26 21:50:37 · 199 阅读 · 0 评论 -
蓝桥杯省模拟之小明村庄通电 C++暴力实现
写在前面这是一道蓝桥杯省模拟题因为我还不会动态规划解决这个问题 所以模拟的时候我直接暴力解决,可能会突破时间限制,等以后对动归很熟悉了,在更新这篇文章,以下是我当时在模拟的时候暴力解决的算法。如果代码有问题,请私信于我,共同探讨,共同进步。问题描述2015年,全中国实现了户户通电。作为一名电力建设者,小明正在帮助一带一路上的国家通电。 这一次,小明要帮助 n 个村庄通电,其中 1 号村庄...原创 2020-04-22 21:59:15 · 592 阅读 · 2 评论 -
求m*n阶螺旋矩阵 C++实现
写在前面最近有点懒,但是不能停止写博客,整理下前面一段时间在比赛中写的代码,一方面帮助自己学习,另一方面可以给观看此博客的你一点点算法上的思路,如代码有问题,请及时私信与我,我们相互一起学习学习。问题描述求 m*n阶螺旋矩阵例如 4 * 5 的螺旋矩阵为1 2 3 4 514 15 16 17 613 20 19 18 712 11 10 9 8输入4 5输出1 2 3 4...原创 2020-04-22 19:39:35 · 1300 阅读 · 0 评论 -
蓝桥杯省模拟 求m*n阶螺旋矩阵中的第r行第j列的值 C++实现
写在前面最近有点懒,但是不能停止写博客,整理下前面一段时间在比赛中写的代码,一方面帮助自己学习,另一方面可以给观看此博客的你一点点算法上的思路,如代码有问题,请及时私信与我,我们相互一起学习学习。问题描述求m*n阶螺旋矩阵中的第r行第j列的值输入4 52 3输出16解释4*5的螺旋矩阵为1 2 3 4 514 15 16 17 613 20 19 18 712 11 1...原创 2020-04-22 19:24:59 · 313 阅读 · 0 评论 -
蓝桥杯省模拟之凯撒密码 C++实现
写在前面最近有点懒,但是不能停止写博客,整理下前面一段时间在比赛中写的代码,一方面帮助自己学习,另一方面可以给观看此博客的你一点点算法上的思路,如代码有问题,请及时私信与我,我们相互一起学习学习。问题描述使用凯撒密码加密字符串‘w’-‘z’加密成‘a’-‘c’ 其他加密成字母表后三位如a–>d输入lanqiao输出odqtldr#include<iostream>...原创 2020-04-22 17:30:49 · 1139 阅读 · 0 评论 -
求解 N阶矩阵螺旋 李春葆算法实验总结与思路 C++实现
写在前面最近有点开始懒了,但是还是要坚持写博客,今天就整理了一下之前写过的代码,也当做是复习了。看了下之前写的代码,写的挺烂的- -,于是修改了一下写篇博客帮助正在学习算法的同学,如果本代码有问题,可以私信博主,博主将会进行及时修正。感谢各位点开此文。问题描述:创建N阶螺旋矩阵并输出输入样例:4输出样例:1 2 3 412 13 14 511 16 15 610 9 8 7算...原创 2020-04-22 17:16:30 · 598 阅读 · 0 评论