C++
文章平均质量分 92
ChuanYang Chen
Christian,Front-end engineer,C++ developer
展开
-
H - 还是畅通工程
H - 还是畅通工程题目:某省调查乡村交通状况,得到的统计表中列出了任意两村庄间的距离。省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可),并要求铺设的公路总长度为最小。请计算最小的公路总长度。Input:测试输入包含若干测试用例。每个测试用例的第1行给出村庄数目N ( < 100 );随后的N(N-1)/2行对应村庄间的距离,每行给出一对正整数,分别是两个村庄的编号,以及此两村庄间的距离。为简单起见,村庄从1到N编号。当原创 2020-12-18 15:21:35 · 72 阅读 · 0 评论 -
L2-1 简单计算器 (25分)【36行代码搞定栈出入问题】
L2-1 简单计算器 (25分)【36行代码搞定栈出入问题】前言:如果熟悉STL的stack,这道题算是一道水题吧题目:本题要求你为初学数据结构的小伙伴设计一款简单的利用堆栈执行的计算器。如上图所示,计算器由两个堆栈组成,一个堆栈 S1存放数字,另一个堆栈 S2存放运算符。计算器的最下方有一个等号键,每次按下这个键,计算器就执行以下操作:Sample Input:540 5 8 3 2/ * - +Sample Output:2Sample Input:52 5 8 4 4原创 2020-12-05 11:42:32 · 3615 阅读 · 0 评论 -
A - 迷宫问题
A - 迷宫问题前言:最近感觉脑子不够用,一个水题也能想好久。头发倒掉不少,这是脑子跟着一起入冬了么。。。题目:定义一个二维数组:int maze[5][5] = {0, 1, 0, 0, 0,0, 1, 0, 1, 0,0, 0, 0, 0, 0,0, 1, 1, 1, 0,0, 0, 0, 1, 0,};它表示一个迷宫,其中的1表示墙壁,0表示可以走的路,只能横着走或竖着走,不能斜着走,要求编程序找出从左上角到右下角的最短路线。思路:思路不难可直接看代码,题目主要需要有一个v原创 2020-12-04 15:20:54 · 248 阅读 · 0 评论 -
【简洁,易懂程式】C - 马走日
【简洁,易懂程式】C - 马走日题目:马在中国象棋以日字形规则移动。请编写一段程序,给定n*m大小的棋盘,以及马的初始位置(x,y),要求不能重复经过棋盘上的同一个点,计算马可以有多少途径遍历棋盘上的所有点。第一行为整数T(T < 10),表示测试数据组数。每一组测试数据包含一行,为四个整数,分别为棋盘的大小以及初始位置坐标n,m,x,y。(0<=x<=n-1,0<=y<=m-1, m < 10, n < 10)input:15 4 0 0ou原创 2020-12-04 11:03:19 · 1722 阅读 · 0 评论 -
【图解】L2-1 出栈序列的合法性 (25分)
L2-1 出栈序列的合法性 (25分)题目:给定一个最大容量为 M 的堆栈,将 N 个数字按 1, 2, 3, …, N 的顺序入栈,允许按任何顺序出栈,则哪些数字序列是不可能得到的?例如给定 M=5、N=7,则我们有可能得到{ 1, 2, 3, 4, 5, 6, 7 },但不可能得到{ 3, 2, 1, 7, 5, 6, 4 }。输入格式:输入第一行给出 3 个不超过 1000 的正整数:M(堆栈最大容量)、N(入栈元素个数)、K(待检查的出栈序列个数)。最后 K 行,每行给出 N 个数字的出栈序原创 2020-11-24 20:53:25 · 988 阅读 · 2 评论 -
F - The Smallest String Concatenation
F - The Smallest String Concatenation题目:You’re given a list of n strings a1, a2, …, an. You’d like to concatenate them together in some order such that the resulting string would be lexicographically smallest.Given the list of strings, output the lexico原创 2020-11-14 09:47:17 · 116 阅读 · 0 评论 -
H - 利润 (最大子列和问题) C++在线算法
H - 利润 (最大子列和问题) C++在线算法佩服我自己,一道水题怎么做都过不了!!!!!!!!!题目:Sample Input:7 -3 4 9 -2 -5 8 -3 Sample Output:14解题思路:题目用到的是最大子列和问题,就是在一段连续的区间内找到区间内数字的最大和。我们用样例举例子:-3 4 9 -2 -5 8 -3 其中【4,9,-2,-5,8】这一段连续的序列和比其他的子列大,所以是最大子列。这里你应该会想到:最原创 2020-10-28 17:09:13 · 247 阅读 · 0 评论 -
C - 装箱问题 c++代码详细讲解
C - 装箱问题 c++代码详细讲解Sample Input0 0 4 0 0 1 7 5 1 0 0 0 0 0 0 0 0 0 Sample Output2 1 解题思路:因为高一定,题目无需考虑体积,只需考虑面积。6 * 6的货物只能单独装在一个6 * 6的包裹中。5 * 5的货物只能单独装在一个6 * 6的包裹中。但还剩下11个1 * 1的空间。4 * 4的货物只能单独装在一个6 * 6的包裹中。但还剩下5个2 * 2的空间。3 * 3的货物就有多种不同的放法,但原创 2020-10-27 19:15:11 · 3814 阅读 · 0 评论 -
D - Buying Shovels 买铲子问题
简单说下中文意思:某人要买n把铲子,商店里有k种类型的包装,如:包装1里面有1把铲子,包装2里面有2把铲子,……包装k里面有k把铲子。商店中每一种包装都有无数种。题目要我们帮他提供买最少包装数量的方案,要求每一种包装中铲子数量是相同的,也就是说这k种类型的包装只挑一种类型购买。举个例子:比如买8把铲子,店里有7种不同类型的包装,则只需要买2袋就够了,买两袋4类型包装的,每一包里面有4把铲子。AC代码:#include <algorithm>#include "math..原创 2020-10-21 13:47:11 · 201 阅读 · 0 评论 -
7-11 列车调度 (25分)
火车站的列车调度铁轨的结构如下图所示。两端分别是一条入口(Entrance)轨道和一条出口(Exit)轨道,它们之间有N条平行的轨道。每趟列车从入口可以选择任意一条轨道进入,最后从出口离开。在图中有9趟列车,在入口处按照{8,4,2,5,3,9,1,6,7}的顺序排队等待进入。如果要求它们必须按序号递减的顺序从出口离开,则至少需要多少条平行铁轨用于调度?输入格式:输入第一行给出一个整数N (2 ≤ N ≤10^5),下一行给出从1到N的整数序号的一个重排列。数字间以空格分隔。输出格式:在一行中输原创 2020-10-20 18:17:00 · 1427 阅读 · 0 评论 -
北京大学郭炜-最长上升子序列 动态规划讲解
北京大学郭炜-最长上升子序列 动态规划讲解问题原型:解题思路:找子问题,题目要求我们求1~n的最长上升子序列的长度,那我们想一想:1-2个元素的最长上升子序列的长度是多少,第1个元素的最长上升子序列又是多少?假设我们输入一个序列:92 7 1 5 6 4 3 8 9显然第1个元素的最长上升子序列的长度为11-2个元素的最长上升子序列为(2 7),长度为21-3个元素的最长上升子序列为(2 7)(2 1),长度为21-4个元素的最长上升子序列有(2 7)(2 1)(2 5)(1 5)原创 2020-10-14 19:20:51 · 301 阅读 · 0 评论 -
北京大学郭炜-假币问题 思路详解
解题思路:本题依旧是使用枚举法解决。枚举每一个硬币,先假设被枚举到的这个硬币是轻的,看看是否符合三种称量结果,倘若符合,即可找到假币。倘若不符合,则假设被枚举到的这个硬币是重的,看看是否符合三种测量结果,同理,倘若符合则找到假币。倘若不符,则所拿硬币是真币(因为假币不是轻就是重,而且有且只有一个假币),继续枚举下一枚硬币直到找到假币为止。代码实现:#include <iostream>#include <cstring> using namespace std;cha.原创 2020-10-14 16:05:10 · 672 阅读 · 0 评论 -
北京大学郭炜-生理周期 思路细讲
北京大学郭炜-生理周期人有体力、情商、智商的高峰日子,它们分别每隔 23天、28天和33天出现一次。对于每个人,我们想 知道何时三个高峰落在同一天。给定三个高峰出现 的日子p,e和i(不一定是第一次高峰出现的日子), 再给定另一个指定的日子d,你的任务是输出日子d 之后,下一次三个高峰落在同一天的日子(用距离d 的天数表示)。例如:给定日子为10,下次出现三 个高峰同一天的日子是12,则输出2。输入输入四个整数:p, e, i和d。 p, e, i分别表示体力、情感和智力 高峰出现的日子。d是给定的日原创 2020-10-14 15:41:18 · 929 阅读 · 0 评论 -
E - Polygon 思路讲解
E - Polygoninput:54001000110000000021001200004010111110101011140100111001010111output:YESNOYESYESNO解题思路:这道题咋一看得进行贼复杂的模拟,其实啥模拟都不用,只需要从矩阵右下角开始一行一行向左上方遍历就行了。如图:此时判断‘1’位置的合法性必须分两种情况:1.当‘1’是位于右下方边缘时,都处在合法位置2.当‘1’不位于右下边缘时原创 2020-10-13 19:55:57 · 270 阅读 · 0 评论 -
C - Honest Coach
C - Honest Coach题目看起来很复杂,做到最后发现自己被演了。其实题目只要求AB队至少有一个人就行了,并没有要求AB队人数有多少。所以整个题目只需要对输入的数据进行排序,并计算出数据间差距最小的数据就ok了。#include <algorithm>#include "math.h"#include "iostream"#include "vector"using namespace std;int main(){ int n,m,a,temp,min;原创 2020-10-13 18:15:14 · 137 阅读 · 0 评论 -
7-9 约瑟夫环问题-hebust (10分) C++递归实现
7-9 约瑟夫环问题-hebust (10分) C++递归实现约瑟夫环问题约瑟夫环是一个数学的应用问题:已知n个人(以编号a,b,c…分别表示)围坐在一张圆桌周围。从编号为1的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。输入格式:固定为2行,第一行为m,第二行为n个人的名称列表,用英文字母代表,元素直接使用英文逗号 , 分开输出格式:一行,为出列元素序列,元素之间使用英文逗号 , 分开【注意:末尾元素后没有逗号】原创 2020-10-12 16:44:25 · 554 阅读 · 0 评论 -
n阶图G的连通性及欧拉性判别系统-2020大一C++程序设计项目 小学期源码公开
2020大一C++程序设计项目 小学期源码公开作者:传扬文章末尾附加源码项目设计1.数据输入和储存本系统内核采用邻接矩阵,但主界面是通过点和边的关系来进行输入的,这样用户可以直观的把图形输入到计算机里,不需要掌握“离散数学”上的“邻接矩阵”,降低用户使用程序的难度。2.无向图的连通判断以及分支的输出程序可以对用户输入的无向图进行连通性判断,倘若该图是连通图,则输出“此图是连通图”,反之输出“此图不是连通图”。同时,程序要达到用户在选择输出无向图分支后能够清晰的看出图中的每一个分支,即使是连通原创 2020-10-11 19:41:47 · 925 阅读 · 4 评论 -
7-7 后缀式求值 (25分)
7-7 后缀式求值 (25分)我们人类习惯于书写“中缀式”,如 3 + 5 * 2 ,其值为13。 (p.s. 为什么人类习惯中缀式呢?是因为中缀式比后缀式好用么?)而计算机更加习惯“后缀式”(也叫“逆波兰式”,Reverse Polish Notation)。上述中缀式对应的后缀式是: 3 5 2 * +现在,请对输入的后缀式进行求值。输入格式:在一行中输入一个后缀式,运算数和运算符之间用空格分隔,运算数长度不超过6位,运算符仅有+ - * / 四种。输出格式:在一行中输出后缀式的值,保留一原创 2020-10-10 17:17:21 · 4952 阅读 · 2 评论 -
北京大学郭炜-输出前m大的数
北京大学郭炜-输出前m大的数给定一个数组包含n个元素,统计前m大的数并且把这m个数从大到小输出。感想:可能是我语文不好,总理解不了“前m大的数”是什么意思,后来才搞明白,前m大的数就是这个数组中,前m个比较大的数据:比如:1234567前3大的数就是:7 6 5前4大的数就是:7 6 5 4#include <algorithm>#include "iostream"using namespace std;void swap(int &a,int &b){原创 2020-10-09 13:47:12 · 701 阅读 · 0 评论 -
C++一些容易忘记的笔记
最大CHAR和最小CHAR:自定义宽度和对齐方式:setfill()填充:常见ASCII码转义字符在函数中传递二维数组int转string内存复制常见错误原创 2020-04-20 20:28:05 · 75 阅读 · 0 评论 -
deque基本用法
deque基本用法:构造函数//// Created by whist on 2020/4/17.// 构造函数#include <iostream>#include <deque>#include <algorithm>using namespace std;void printDeque(const deque<int>&...原创 2020-04-20 12:08:19 · 250 阅读 · 0 评论 -
vector基本用法大总结
vector的构造函数//// Created by whist on 2020/4/11.//vector的构造函数#include <iostream>#include <vector>using namespace std;void printVector(vector<int>&v){//打印函数 vector<int...原创 2020-04-20 11:37:28 · 268 阅读 · 0 评论