c/c++
文章平均质量分 75
一叶知秋-
这个作者很懒,什么都没留下…
展开
-
C++中*&(指针引用)和*(指针)的区别
C++中如果参数不是引用的话会调用参数对象的拷贝构造函数,所以如果有需求想改变指针所指的对象(换句话说,就是要改变指针里面存的地址),就要使用指针引用#include <iostream>using namespace std;struct point { int x; int y;};void changenum1(point *&pnum)...原创 2019-09-13 16:39:35 · 839 阅读 · 0 评论 -
蓝桥杯 扶老奶奶过街
蓝桥杯 扶老奶奶过街一共有5个红领巾,编号分别为A、B、C、D、E,老奶奶被他们其中一个扶过了马路。 五个红领巾各自说话: A :我和E都没有扶老奶奶 B :老奶奶是被C和E其中一个扶过大街的 C :老奶奶是被我和D其中一个扶过大街的 D :B和C都没有扶老奶奶过街 E :我没有扶老奶奶 已知五个红领巾中有且只有2个人说的是真话,请问是谁扶这老奶奶过了街? 若有多个答案,在一行中输...原创 2018-03-26 21:18:17 · 442 阅读 · 0 评论 -
蓝桥杯 开心的金明
蓝桥杯 开心的金明问题描述 金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间他自己专用的很宽敞的房间。更让他高兴的是,妈妈昨天对他说:“你的房间需要购买哪些物品,怎 么布置,你说了算,只要不超过N元钱就行”。今天一早金明就开始做预算,但是他想买的东西太多了,肯定会超过妈妈限定的N元。于是,他把每件物品规定了一 个重要度,分为5等:用整数1~5表示,第5等最重要。他还从因特网上查到了每件...原创 2018-03-26 20:39:01 · 268 阅读 · 0 评论 -
PTA 整除光棍
PTA 整除光棍这里所谓的“光棍”,并不是指单身汪啦~ 说的是全部由1组成的数字,比如1、11、111、1111等。传说任何一个光棍都能被一个不以5结尾的奇数整除。比如,111111就可以被13整除。 现在,你的程序要读入一个整数x,这个整数一定是奇数并且不以5结尾。然后,经过计算,输出两个数字:第一个数字s,表示x乘以s是一个光棍,第二个数字n是这个光棍的位数。这样的解当然不是唯一的,题目要...原创 2018-03-21 16:55:36 · 976 阅读 · 0 评论 -
蓝桥杯 Sine之舞
蓝桥杯 Sine之舞 问题描述 最近FJ为他的奶牛们开设了数学分析课,FJ知道若要学好这门课,必须有一个好的三角函数基本功。所以他准备和奶牛们做一个“Sine之舞”的游戏,寓教于乐,提高奶牛们的计算能力。 不妨设 An=sin(1–sin(2+sin(3–sin(4+...sin(n))...) Sn=(...(A1+n)A2+n-1)A3+...+2)An+1 FJ想让奶牛们计算Sn...原创 2018-03-19 21:28:56 · 202 阅读 · 1 评论 -
蓝桥杯 2n皇后问题
问题描述 给定一个n*n的棋盘,棋盘中有一些位置不能放皇后。现在要向棋盘中放入n个黑皇后和n个白皇后,使任意的两个黑皇后都不在同一行、同一列或同一条对角线上,任意的两个白皇后都不在同一行、同一列或同一条对角线上。问总共有多少种放法?n小于等于8。输入格式 输入的第一行为一个整数n,表示棋盘的大小。 接下来n行,每行n个0或1的整数,如果一个整数为1,表示对应的位置可以放皇后,如果一个整数为0...原创 2018-03-06 16:34:50 · 1010 阅读 · 0 评论 -
蓝桥杯 龟兔赛跑预测
蓝桥杯 龟兔赛跑预测 问题描述 话说这个世界上有各种各样的兔子和乌龟,但是研究发现,所有的兔子和乌龟都有一个共同的特点——喜欢赛跑。于是世界上各个角落都不断在发生着乌龟和兔子的比赛,小华对此很感兴趣,于是决定研究不同兔子和乌龟的赛跑。他发现,兔子虽然跑比乌龟快,但它们有众所周知的毛病——骄傲且懒惰,于是在与乌龟的比赛中,一旦任一秒结束后兔子发现自己领先t米或以上,它们就会停下来休息s秒。...原创 2018-03-19 19:18:57 · 466 阅读 · 0 评论 -
蓝桥杯 芯片测试
蓝桥杯 芯片测试:问题描述 有n(2≤n≤20)块芯片,有好有坏,已知好芯片比坏芯片多。 每个芯片都能用来测试其他芯片。用好芯片测试其他芯片时,能正确给出被测试芯片是好还是坏。而用坏芯片测试其他芯片时,会随机给出好或是坏的测试结果(即此结果与被测试芯片实际的好坏无关)。 给出所有芯片的测试结果,问哪些芯片是好芯片。输入格式 输入数据第一行为一个整数n,表示芯片个数。 第二行到第n+1行...原创 2018-03-19 18:25:03 · 2570 阅读 · 3 评论 -
八皇后问题
给定一个n*n的棋盘,棋盘中有一些位置不能放皇后。现在要向棋盘中放入n个皇后,使任意的两个皇后都不在同一行、同一列或同一条对角线上。问总共有多少种放法?n小于等于8。#include<iostream> using namespace std; int total=0; int c[100];bool is_ok(int row) /...原创 2018-03-05 21:22:24 · 187 阅读 · 0 评论 -
prim算法来解最小生成树问题
#include<iostream>using namespace std;int main(){ int graph[100][100],dis[100],book[100]={0};//dis数组是记录生成树到非树顶点的距离,book记录生成树的顶点 int inf=999999; int count=0,sum=0;//count用来记录生成树中顶点的个数,sum用来...原创 2018-03-12 21:53:38 · 585 阅读 · 0 评论 -
蓝桥杯 数的读法
蓝桥杯 数的读法问题描述 Tom教授正在给研究生讲授一门关于基因的课程,有一件事情让他颇为头疼:一条染色体上有成千上万个碱基对,它们从0开始编号,到几百万,几千万,甚至上亿。 比如说,在对学生讲解第1234567009号位置上的碱基时,光看着数字是很难准确的念出来的。 所以,他迫切地需要一个系统,然后当他输入12 3456 7009时,会给出相应的念法: 十二亿三千四百五十六万七千零九 ...原创 2018-03-27 17:13:23 · 1614 阅读 · 0 评论 -
蓝桥杯 完美的代价
蓝桥杯 完美的代价问题描述 回文串,是一种特殊的字符串,它从左往右读和从右往左读是一样的。小龙龙认为回文串才是完美的。现在给你一个串,它不一定是回文的,请你计算最少的交换次数使得该串变成一个完美的回文串。 交换的定义是:交换两个相邻的字符 例如mamad 第一次交换 ad : mamda 第二次交换 md : madma 第三次交换 ma : madam (回文!完美!)输入格式 ...原创 2018-03-27 23:04:00 · 1326 阅读 · 0 评论 -
(STL,set,priority_queue)丑数
题目:丑数是指不能被2,3,5以外的其他素数整除的数。把丑数从小到大排列起来,结果如下:1,2,3,4,5,6,8,9,10,12,…求第1500个丑数解析:优先队列的目的是没循环一次 栈顶就是第几个数set集合的作用只有一个,用s.count(x)判断生成的数是否已经存在,因为优先队列没有这个功能#include<iostream>#include<queu...原创 2019-09-12 13:58:47 · 331 阅读 · 1 评论 -
(C++)反片语(map)
题目:输入一些单词,找出所有满足如下条件的单词:该单词不能通过字母重排,得到输入文本中的另外一个单词。在判断是否满足条件时,字母不分大小写,但在输入时应保留输入中的大小写,按字典序进行排列(所有大写字母在小写字母的前面)样例输入:ladder came tape soon leader acme RIDE lone Dreis peatScAlE orb eye Rides deale...原创 2019-09-10 14:01:01 · 450 阅读 · 0 评论 -
木块问题
题目大意:输入n,得到编号为0~n-1的木块,分别摆放在顺序排列编号为0~n-1的位置。现对这些木块进行操作,操作分为四种。1、move a onto b:把木块a、b上的木块放回各自的原位,再把a放到b上;2、move a over b:把a上的木块放回各自的原位,再把a发到含b的堆上;3、pile a onto b:把b上的木块放回各自的原位,再把a连同a上的木块移到b上;...原创 2019-09-09 14:55:25 · 1841 阅读 · 0 评论 -
铁轨问题
某城市有一个火车站,铁轨铺设如下图所示。有n节车厢从A方向驶入车站,按进站顺序编号为1~n。你的任务是让它们按照某种特定的顺序进入B方向的铁轨并使出车站。为了重组车厢,你可以借助中转站C;这是一个可以停放任意多节车厢的车站,但由于末端封顶,驶入C的车厢必须按照相反的顺序驶出C。对于每个车厢,一旦从A进入C,就不能再回到A了;一旦从C进入B,就不能回到C了。换言之,在任意时刻,只有两种选择:A-&g...原创 2019-07-07 19:45:26 · 3081 阅读 · 0 评论 -
蓝桥杯 最大的算式
蓝桥杯 最大的算式问题描述 题目很简单,给出N个数字,不改变它们的相对位置,在中间加入K个乘号和N-K-1个加号,(括号随便加)使最终结果尽量大。因为乘号和加号一共就是N-1个了,所以恰好每两个相邻数字之间都有一个符号。例如: N=5,K=2,5个数字分别为1、2、3、4、5,可以加成: 1*2*(3+4+5)=24 1*(2+3)*(4+5)=45 (1*2+3)*(4+5)=45 ...原创 2018-03-28 20:42:05 · 994 阅读 · 1 评论 -
蓝桥杯 未名湖边的烦恼
蓝桥杯 未名湖边的烦恼问题描述 每年冬天,北大未名湖上都是滑冰的好地方。北大体育组准备了许多冰鞋,可是人太多了,每天下午收工后,常常一双冰鞋都不剩。 每天早上,租鞋窗口都会排起长龙,假设有还鞋的m个,有需要租鞋的n个。现在的问题是,这些人有多少种排法,可以避免出现体育组没有冰鞋可租的尴尬场面。(两个同样需求的人(比如都是租鞋或都是还鞋)交换位置是同一种排法)输入格式 两个整数,表示m和n输出...原创 2018-03-28 15:37:05 · 1215 阅读 · 1 评论 -
蓝桥杯 数字三角形
蓝桥杯 数字三角形问题描述 (图3.1-1)示出了一个数字三角形。 请编一个程序计算从顶至底的某处的一条路 径,使该路径所经过的数字的总和最大。 ●每一步可沿左斜线向下或右斜线向下走; ●1<三角形行数≤100; ●三角形中的数字为整数0,1,…99; . (图3.1-1)输入格式 文件中首先读到的是三角形的行数。 接下来描述整个三角形输出格式 最大总和(整数)样例输入573 ...原创 2018-03-28 14:47:25 · 3331 阅读 · 5 评论 -
蓝桥杯 矩形面积交
蓝桥杯 矩形面积交问题描述 平面上有两个矩形,它们的边平行于直角坐标系的X轴或Y轴。对于每个矩形,我们给出它的一对相对顶点的坐标,请你编程算出两个矩形的交的面积。输入格式 输入仅包含两行,每行描述一个矩形。 在每行中,给出矩形的一对相对顶点的坐标,每个点的坐标都用两个绝对值不超过10^7的实数表示。输出格式 输出仅包含一个实数,为交的面积,保留到小数后两位。样例输入1 1 3 32 2 4...原创 2018-03-27 23:24:58 · 637 阅读 · 1 评论 -
用并查集来解最小生成树问题
#include<iostream>using namespace std;int f[1000];typedef struct node{ int u; int v; int w;}graph;void sort(graph g[],int m){ for(int i=1;i<m;i++) for(int j=1;j<=m-i;j++) if(g[...原创 2018-03-12 21:36:37 · 204 阅读 · 0 评论 -
并查集算法
代码如下:#include<iostream>using namespace std;int f[1000];void init(int n) //初始化 { for(int i=1;i<=n;i++) f[i]=i;}int getf(int v) //返回的是v的所属结点 { if(f[v]==v) return v; else { f[...原创 2018-03-12 19:19:53 · 2144 阅读 · 1 评论 -
PTA 表达式转换 算术表达式有前缀表示法、中缀表示法和后缀表示法等形式。日常使用的算术表达式是采用中缀表示法,即二元运算符位于两个运算数中间。请设计程序将中缀表达式转换为后缀表达式。
算术表达式有前缀表示法、中缀表示法和后缀表示法等形式。日常使用的算术表达式是采用中缀表示法,即二元运算符位于两个运算数中间。请设计程序将中缀表达式转换为后缀表达式。输入格式:输入在一行中给出不含空格的中缀表达式,可包含+、-、*、\以及左右括号(),表达式不超过20个字符。输出格式:在一行中输出转换后的后缀表达式,要求不同对象(运算数、运算符号)之间以空格分隔,但结尾不得有多余空格。输入样例:2+...原创 2018-03-17 22:54:27 · 21655 阅读 · 4 评论 -
顺序队列的创建、初始化、判断空、入队、出队、读取队头元素、置空、求队长操作
顺序队列的创建、初始化、判断空、入队、出队、读取队头元素、置空、求队长操作代码如下://队列的顺序存储#include#include#include #define MAXSIZE 100 //顺序队列的最大容量typedef int DataType;//#define DataType inttypedef struct{ DataType data[MAXSIZ原创 2018-01-15 20:23:17 · 7564 阅读 · 1 评论 -
栈的链式存储的定义、初始化、判断空、入栈、出栈、读取栈顶元素、求栈长度、清空栈操作
栈的链式存储的定义、初始化、判断空、入栈、出栈、读取栈顶元素、求栈长度、清空栈操作,代码如下://栈的链式存储表示 因为入栈和出栈top都要改变,所以传参数的时候要传指针的地址 #include#include#includetypedef int ElemType;typedef struct Node{ //定义链栈的结点 ElemType data; st原创 2018-01-15 16:20:14 · 7391 阅读 · 0 评论 -
栈的顺序存储的初始化、判断栈空、入栈、出栈、读取栈顶元素、栈置空、求栈长操作
栈的顺序存储的初始化、判断栈空、入栈、出栈、读取栈顶元素、栈置空、求栈长操作代码如下://栈的顺序存储表示 #include#include#include#define MAXSIZE 100 typedef int ElemType; typedef struct Node{ //定义栈 ElemType data[MAXSIZE]; int top;}Seq原创 2018-01-15 13:54:20 · 7800 阅读 · 0 评论 -
初始化建立链表的两种方法
方法一是把头指针作为函数参数方法二是在函数中建立好链表后,然后返回这个链表#include<stdio.h>#include<stdlib.h>#include<malloc.h>typedef int ElemType;typedef struct Node{ //创建双向链表的结点 int data; struct N...原创 2018-01-14 20:42:00 · 36043 阅读 · 6 评论 -
双向链表的建立、初始化和输出
这里只写出双向链表的建立、初始化和输出,其他的插入、删除、求表长等操作和单链表类似,可以参照我之前的文章#include<stdio.h>#include<stdlib.h>#include<malloc.h>typedef int ElemType;typedef struct Node{ //创建双向链表的结点 int dat...原创 2018-01-14 20:25:31 · 4874 阅读 · 3 评论 -
循环链表 实现对循环链表的初始化,创建,插入,删除,输出操作
//循环链表 实现对循环链表的初始化,创建,插入,删除,输出操作 //它只设置尾指针rear,这时头节点为rear->next#include#include#includetypedef struct node{ //定义单链表的节点 int data; struct node *next; }linklist; linklist *head,*rear;原创 2018-01-12 16:31:52 · 5311 阅读 · 1 评论 -
单链表的创建、初始化、插入、删除 、输出、求表长、清空、查找操作
//单链表的创建、初始化、插入、删除 、输出、求表长、清空、查找操作 #include#include#include#define N 5#define ERROR 0#define OK 1typedef struct node{ //定义节点 int data; struct node *next;}linklist;linklist *Initlist()原创 2018-01-11 20:29:20 · 6207 阅读 · 2 评论 -
顺序表的创建、插入、删除、查找、求表长、输出元素
//线性表的顺序存储(顺序表)#include#include#include#define MAXLEN 10 // 定义顺序表的最大长度MAXLEN为10 typedef struct{ //定义节点 int data[MAXLEN]; int last; //last用来记录当前线性表中最后一个元素的数组中的位置,即last起到了指针的作用 }原创 2018-01-11 16:15:02 · 17286 阅读 · 1 评论 -
struct和typedef struct的用法和区别
struct和typedef struct的用法和区别原创 2017-10-15 14:50:01 · 9236 阅读 · 0 评论 -
队列的链式存储的两种定义方式
队列的链式存储的定义结点、初始化、判断空、入队、出队、读取队头元素、求队列长度操作方法一:这种链队列有头指针,上图分别为链队列为空、非空、只有一个元素的时候的情况,代码如下://队列的链式存储和操作的实现 #include#include#includetypedef int DataType;typedef struct Node{ //定义链队结点的类原创 2018-01-16 13:57:26 · 3076 阅读 · 0 评论 -
树的三叉链的创建和遍历
树的三叉链的创建和遍历,和二叉树的不同就是结点定义多了parent,和创建函数中的部分代码不一样图示如下代码如下:#include#include#include#define DataType char#define MAXSIZE 100 using namespace std;typedef struct Node{ DataType data; struct Node *l原创 2018-01-18 13:56:16 · 3765 阅读 · 0 评论 -
PTA 一元多项式的乘法与加法运算 设计函数分别求两个一元多项式的乘积与和。
设计函数分别求两个一元多项式的乘积与和。输入格式:输入分2行,每行分别先给出多项式非零项的个数,再以指数递降方式输入一个多项式非零项系数和指数(绝对值均为不超过1000的整数)。数字间以空格分隔。输出格式:输出分2行,分别以指数递降方式输出乘积多项式以及和多项式非零项的系数和指数。数字间以空格分隔,但结尾不能有多余空格。零多项式应输出0 0。输入样例:4 3 4 -5 2 6 1 -2 03...原创 2018-03-17 16:29:28 · 4539 阅读 · 1 评论 -
PTA 求链式线性表的倒数第K项 给定一系列正整数,请设计一个尽可能高效的算法,查找倒数第K个位置上的数字。
给定一系列正整数,请设计一个尽可能高效的算法,查找倒数第K个位置上的数字。输入格式:输入首先给出一个正整数K,随后是若干正整数,最后以一个负整数表示结尾(该负数不算在序列内,不要处理)。输出格式:输出倒数第K个位置上的数据。如果这个位置不存在,输出错误信息NULL。输入样例:4 1 2 3 4 5 6 7 8 9 0 -1输出样例:7#include<iostream>#incl...原创 2018-03-17 14:46:25 · 10459 阅读 · 1 评论 -
贪心算法
1.活动选择问题 这是《算法导论》上的例子,也是一个非常经典的问题。有n个需要在同一天使用同一个教室的活动a1,a2,…,an,教室同一时刻只能由一个活动使用。每个活动ai都有一个开始时间si和结束时间fi 。一旦被选择后,活动ai就占据半开时间区间[si,fi)。如果[si,fi]和[sj,fj]互不重叠,ai和aj两个活动就可以被安排在这一天。该问题就是要安排这些活动使得尽量多的活动能不冲突的...原创 2018-02-24 15:42:39 · 287 阅读 · 0 评论 -
在图中找a点到b点的最短路径
该问题的核心算法只有五步,假设在图中有四个顶点。我们要让任意两点(假设是a到b)之间的路程变短,只能引入第三个点(顶点k),并通过这个顶点k中转即a->k->b。假如现在只允许经过一号顶点,求任意两点之间的最短路程,应该如何求呢?只需判断graph[i][1]+graph[1][j]是否比graph[i][j]小即可。同理,允许经过二号点,三号点......,所以核心算法代码如下:...原创 2018-03-10 20:40:21 · 6993 阅读 · 0 评论 -
蓝桥杯 分解质因数
问题描述 求出区间[a,b]中所有整数的质因数分解。输入格式 输入两个整数a,b。输出格式 每行输出一个数的分解,形如k=a1*a2*a3...(a1<=a2<=a3...,k也是从小到大的)(具体可看样例)样例输入3 10样例输出3=34=2*25=56=2*37=78=2*2*29=3*310=2*5提示 先筛出所有素数,然后再分解。数据规模和约定 2<=a<...原创 2018-02-23 17:04:45 · 303 阅读 · 0 评论 -
蓝桥杯 高精度阶乘计算
问题描述 输入一个正整数n,输出n!的值。 其中n!=1*2*3*…*n。算法描述 n!可能很大,而计算机能表示的整数范围有限,需要使用高精度计算的方法。使用一个数组A来表示一个大整数a,A[0]表示a的个位,A[1]表示a的十位,依次类推。 将a乘以一个整数k变为将数组A的每一个元素都乘以k,请注意处理相应的进位。 首先将a设为1,然后乘2,乘3,当乘到n时,即得到了n!的值。输入格...原创 2018-02-21 15:50:04 · 540 阅读 · 0 评论