
蓝桥杯/ACM
weixin_45770392
这个作者很懒,什么都没留下…
展开
-
单链表的冒泡排序
单链表的冒泡排序原创 2023-03-12 14:11:20 · 205 阅读 · 0 评论 -
C语言实现蛇行数组填充
实现c语言打印蛇形数组原创 2023-03-04 10:51:56 · 262 阅读 · 0 评论 -
ACM判断整除
判断整除【题目描述】一个给定的正整数序列,在每个数之前都插入+号或-号后计算它们的和。比如序列:1、2、4共有8种可能的序列:(+1) + (+2) + (+4) = 7(+1) + (+2) + (-4) = -1(+1) + (-2) + (+4) = 3(+1) + (-2) + (-4) = -5(-1) + (+2) + (+4) = 5(-1) + (+2) + (-4) = -3(-1) + (-2) + (+4) = 1(-1) + (-2) + (-4) = -71原创 2021-02-27 10:42:16 · 262 阅读 · 1 评论 -
2018年第九届蓝桥杯c++省赛 第七题:螺旋折线
第七题标题:螺旋折线如图p1.png所示的螺旋折线经过平面上所有整点恰好一次。对于整点(X, Y),我们定义它到原点的距离dis(X, Y)是从原点到(X, Y)的螺旋折线段的长度。例如dis(0, 1)=3, dis(-2, -1)=9给出整点坐标(X, Y),你能计算出dis(X, Y)吗?【输入格式】X和Y对于40%的数据,-1000 <= X, Y <= 1000对于70%的数据,-100000 <= X, Y <= 100000对于100%的数据, -原创 2020-09-13 10:46:33 · 142 阅读 · 0 评论 -
题目 1429: [蓝桥杯][2014年第五届真题]兰顿蚂蚁
兰顿蚂蚁,是于1986年,由克里斯·兰顿提出来的,属于细胞自动机的一种。平面上的正方形格子被填上黑色或白色。在其中一格正方形内有一只“蚂蚁”。 蚂蚁的头部朝向为:上下左右其中一方。蚂蚁的移动规则十分简单: 若蚂蚁在黑格,右转90度,将该格改为白格,并向前移一格; 若蚂蚁在白格,左转90度,将该格改为黑格,并向前移一格。规则虽然简单,蚂蚁的行为却十分复杂。刚刚开始时留下的路线都会有接近对称,像是会重复,但不论起始状态如何,蚂蚁经过漫长的混乱活动后,会开辟出一条规则的“高速公路”。蚂蚁的路线是很难事先预.原创 2020-08-25 17:35:45 · 104 阅读 · 0 评论 -
数字金字塔(动态规划)c++
题目描述观察下面的数字金字塔。写一个程序查找从最高点到底部任意处结束的路径,使路径经过数字的和最大。每一步可以从当前点走到左下方的点也可以到达右下方的点。在上面的样例中,从13到8到26到15到24的路径产生了最大的和86。输入第一个行包含R(1≤ R≤1000),表示行的数目。后面每行为这个数字金字塔特定行包含的整数。所有的被供应的整数是非负的且不大于100。输出单独的一行,包含那个可能得到的最大的和。#include<iostream>#include<algor原创 2020-08-22 09:56:15 · 4351 阅读 · 0 评论 -
c++迷宫问题bfs/dfs
【例8.4】迷宫问题 【深搜参考程序】如下图所示,给出一个N*M的迷宫图和一个入口、一个出口。编一个程序,打印一条从迷宫入口到出口的路径。这里黑色方块的单元表示走不通(用-1表示),白色方块的单元表示可以走(用0表示)。只能往上、下、左、右四个方向走。如果无路则输出“noway.”。下面给出两种解决方法分别是用dfs和bfs解决以(0,0)为入口,(3,8)为出口1,dfs#include<iostream>#include<cstring>using namesp原创 2020-08-21 13:15:25 · 1065 阅读 · 0 评论 -
c++最少步数(信息学奥赛一本通例8.3)
【题目描述】在各种棋中,棋子的走法总是一定的,如中国象棋中马走“日”。有一位小学生就想如果马能有两种走法将增加其趣味性,因此,他规定马既能按“日”走,也能如象一样走“田”字。他的同桌平时喜欢下围棋,知道这件事后觉得很有趣,就想试一试,在一个(100×100)的围棋盘上任选两点A、B,A点放上黑子,B点放上白子,代表两匹马。棋子可以按“日”字走,也可以按“田”字走,俩人一个走黑马,一个走白马。谁用最少的步数走到左上角坐标为(1,1)的点时,谁获胜。现在他请你帮忙,给你A、B两点的坐标,想知道两个位置到(1,原创 2020-08-20 17:27:51 · 2325 阅读 · 0 评论 -
单链表的常用(创建,插入,删除,打印)操作c语言
单链表的操作1.creat_list(LIST L)2 insert(LIST *L)3 Delete_K(LIST *L)4 print_list(LIST L)#include<stdio.h>#include<stdlib.h>typedef struct List //定义结构体struct List { int data;原创 2020-08-19 21:19:15 · 338 阅读 · 0 评论 -
数据结构-顺序表基本操作的实现
今天是线性表中的顺序表的实现,主要实现函数如下,读者有需要可以评论,我可以适当加几个。//实现数组的以下操作,并编写程序验证你的操作。int InputList(SeqList *L,int n); //输入n个整数存放到数组中int PrintList(SeqList *L); //输出数组中的所有元素int Locate(SeqList *L,ElemType e); //在数组L中查找e,返回找到原创 2020-08-19 21:14:10 · 749 阅读 · 0 评论 -
c++queue中的常用函数
在C++中只要#include即可使用队列类,其中在面试或笔试中常用的成员函数如下(按照最常用到不常用的顺序)push()pop()size()empty()front()back()接下来逐一举例说明:push()队列中由于是先进先出,push即在队尾插入一个元素,如:queue<string> q;q.push("Hello World!");q.push("China");cout<<q.front()<<e原创 2020-08-19 21:07:05 · 472 阅读 · 0 评论 -
C++ 栈函数stack用法
C++ Stack(栈)提供了堆栈的全部功能,换句话说就是这里面已经实现了一个先进后出的数据结构。不需要我们再去重新定义各种函数,简化开发过程。c++ stl栈stack的头文件书写格式为:#include<stack>实例化形式如下:stack<type> StackName;其中成员函数如下:1、检验堆栈是否为空empty() 堆栈为空则返回真形式如下:StackName.empty()2、返回栈顶元素top() 返回栈顶元素形式如下:StackName原创 2020-08-19 21:02:31 · 671 阅读 · 0 评论 -
c++优先队列(priority_queue)
既然是队列那么先要包含头文件#include , 他和queue不同的就在于我们可以自定义其中数据的优先级, 让优先级高的排在队列前面,优先出队优先队列具有队列的所有特性,包括基本操作,只是在这基础上添加了内部的一个排序,它本质是一个堆实现的和队列基本操作相同:1top 访问队头元素empty 队列是否为空size 返回队列内元素个数push 插入元素到队尾 (并排序)emplace 原地构造一个元素并插入队列pop 弹出队头元素swap 交换内容//升序队列priority_queu原创 2020-08-19 20:58:28 · 111 阅读 · 0 评论 -
C++ vector
(1)头文件#include.(2)创建vector对象,vector vec;(3)尾部插入数字:vec.push_back(a);(4)使用下标访问元素,cout<<vec[0]<<endl;记住下标是从0开始的。(5)使用迭代器访问元素.(6)插入元素: vec.insert(vec.begin()+i,a);在第i个元素后面插入a;(7)删除元素: vec.erase(vec.begin()+2);删除第3个元素vec.erase(vec.begin原创 2020-08-19 20:53:12 · 110 阅读 · 0 评论 -
C++ set集合使用方法
set集合是c++ stl库中自带的一个容器,set具有以下两个特点:1、set中的元素都是排好序的2、set集合中没有重复的元素常用操作:begin() 返回set容器的第一个元素的地址end() 返回set容器的最后一个元素地址clear() 删除set容器中的所有的元素find() 返回一个指向被查找到元素的迭代器empty() 判断set容器是否为空max_size() 返回set容器可能包含原创 2020-08-19 20:44:03 · 157 阅读 · 0 评论 -
c++algorithm头文件下的常用函数
1.max(),min(),abs()和swap()使用实例:#include<stdio.h>#include<algorithm>using namespace std;int main(){ int x=1,y=-2; printf("%d %d\n",max(x,y),min(x,y));//max(),min()函数的用法 printf("%d %d\n",abs(x),abs(y));//abs()函数的用法 swap(x,y原创 2020-08-19 20:35:57 · 172 阅读 · 0 评论 -
C++中setiosflags()
cout<<setiosflags(ios::fixed)<<setiosflags(ios::right)<<setprecision(2);setiosflags 是包含在命名空间iomanip 中的C++ 操作符,该操作符的作用是执行由有参数指定区域内的动作;iso::fixed 是操作符setiosflags 的参数之一,该参数指定的动作是以带小数点的形式表示浮点数,并且在允许的精度范围内尽可能的把数字移向小数点右侧;iso::right 也是setio原创 2020-08-19 20:19:54 · 752 阅读 · 0 评论 -
不重复地输出数c++
【题目描述】输入n个数,从小到大将它们输出,重复的数只输出一次。保证不同的数不超过500个。【输入】第一行是一个整数n。1 ≤ n ≤ 100000。之后n行,每行一个整数。整数大小在int范围内。【输出】一行,从小到大不重复地输出这些数,相邻两个数之间用单个空格隔开。【输入样例】52 4 4 5 1【输出样例】1 2 4 5#include<iostream>#include<algorithm>using namespace std;int main原创 2020-08-18 15:54:31 · 1661 阅读 · 0 评论 -
和为给定数c++
【题目描述】给出若干个整数,询问其中是否有一对数的和等于给定的数。【输入】第一行是整数n(0 < n ≤ 100,000),表示有n个整数。第二行是n个整数。整数的范围是在0到108之间。第三行是一个整数m(0≤m≤230),表示需要得到的和。【输出】若存在和为m的数对,输出两个整数,小的在前,大的在后,中间用单个空格隔开。若有多个数对满足条件,选择数对中较小的数更小的。若找不到符合要求的数对,输出一行No。【输入样例】42 5 1 46【输出样例】1 5#include&原创 2020-08-18 15:44:59 · 2416 阅读 · 1 评论 -
C++ set集合使用方法
set集合是c++ stl库中自带的一个容器,set具有以下两个特点:1、set中的元素都是排好序的2、set集合中没有重复的元素常用操作:begin() 返回set容器的第一个元素的地址end() 返回set容器的最后一个元素地址clear() 删除set容器中的所有的元素find() 返回一个指向被查找到元素的迭代器empty() 判断set容器是否为空max_size() 返回set容器可能包含原创 2020-08-18 15:04:24 · 703 阅读 · 0 评论 -
二分法求函数的零点c++
题目描述】有函数:f(x)=x5−15x4+85x3−225x2+274^x−121已知f(1.5)>0 ,f(2.4)<0 且方程f(x)=0 在区间[1.5,2.4] 有且只有一个根,请用二分法求出该根。【输入】(无)【输出】该方程在区间[1.5,2.4]中的根。要求四舍五入到小数点后6位。【输入样例】(无)【输出样例】(无)#include<iostream>#include<cmath>#include<iomanip>us原创 2020-08-18 14:58:15 · 3422 阅读 · 0 评论 -
2011 ACM c++
【题目描述】已知长度最大为200位的正整数n,请求出2011n的后四位。【输入】第一行为一个正整数k,代表有k组数据(k≤200),接下来的k行,每行都有一个正整数n,n的位数≤200。【输出】每一个n的结果为一个整数占一行,若不足4位,去除高位多余的0。【输入样例】3528792【输出样例】1051815521题目是高精度,所以要用字符串储存数字n#include<iostream>using namespace std;int main(){ int原创 2020-08-17 15:10:03 · 285 阅读 · 1 评论 -
x的N次方高精度计算c++
计算x的N次方高精度描述任意给定正整数X和N(N<=100),计算x的n次方的值。输入输入正整数X,N。输出输出X的N次方的值。提示高精度计算#include<iostream>using namespace std;int main(){ int x ; int a[1000] = { 0 }; int b=0; a[999] = 1; int n; cin>>x>> n; for (int i = 0; i<n;原创 2020-08-11 10:03:15 · 1782 阅读 · 1 评论 -
分解因数c++
分解因数【题目描述】给出一个正整数aa,要求分解成若干个正整数的乘积,即a=a1×a2×a3×…×an,并且1<a1≤a2≤a3≤…≤an,问这样的分解的种数有多少。注意到a=a也是一种分解。【输入】第1行是测试数据的组数n,后面跟着n行输入。每组测试数据占1行,包括一个正整数a(1<a<32768)。【输出】n行,每行输出对应一个输入。输出应是一个正整数,指明满足要求的分解的种数。【输入样例】2220【输出样例】14#include<iostream&g原创 2020-08-10 17:04:19 · 1930 阅读 · 0 评论 -
判断整除c++
判断整除【题目描述】一个给定的正整数序列,在每个数之前都插入+号或-号后计算它们的和。比如序列:1、2、4共有8种可能的序列:(+1) + (+2) + (+4) = 7(+1) + (+2) + (-4) = -1(+1) + (-2) + (+4) = 3(+1) + (-2) + (-4) = -5(-1) + (+2) + (+4) = 5(-1) + (+2) + (-4) = -3(-1) + (-2) + (+4) = 1(-1) + (-2) + (-4)原创 2020-08-10 16:54:50 · 5600 阅读 · 0 评论 -
判断元素是否存在c++
判断元素是否存在c++(信息学奥赛一本通)题目有一个集合M是这样生成的:(1) 已知k是集合M的元素; (2) 如果y是M的元素,那么,2y+1和3y+1都是M的元素;(3) 除了上述二种情况外,没有别的数能够成为M的一个元素。问题:任意给定k和x,请判断x是否是M的元素。这里的k是无符号整数,x 不大于 100000,如果是,则输出YES,否则,输出NO。【输入】输入整数 k 和 x, 逗号间隔。【输出】如果是,则输出 YES,否则,输出NO。【输入样例】0,22【输出样例】YES使原创 2020-08-10 16:33:13 · 2348 阅读 · 1 评论