C/C++算法
本专栏探究C/C++算法,欢迎交流。
Archer-
每一步的坚持,期待明天的你
展开
-
C++全排列函数
【代码】C++全排列函数。转载 2023-09-28 16:39:16 · 162 阅读 · 0 评论 -
C语言Float的存储大小
所占内存大小在keil C51或者iar for c8051编译器下:int 占两个字节 范围:-32768~+32767long占四个字节 范围:-2147483648~+2147483647float占四个字节 范围:3.40E+38 ~ +3.40E+38double占8个字节 范围:-1.79E+308 ~ +1.79E+308图片来源 https://www.bilibili.com/video/BV1354y1B7o1?from=se原创 2022-02-06 23:09:57 · 5687 阅读 · 0 评论 -
C语言浮点数转字符串
#include <stdlib.h>#include <stdio.h>int main(void){ char buffer[50]; double source = -0.14150; _gcvt(source, 4, buffer); //原型:char *gcvt(double value, int ndigit, char *buf); //value:被转换的值 //ndigit:存储的有效数字位数 //原创 2020-12-13 10:58:46 · 1098 阅读 · 0 评论 -
C++读取一行字符串
对于字符数组:cin.getline(str, len);//读取字符,到换行符终止对于string类:getline(cin, str);//读取字符,到换行符终止原创 2020-10-15 20:39:08 · 366 阅读 · 0 评论 -
质数筛法(C++)
算法解释大于等于5的质数一定和6的倍数相邻令x≥1,将大于等于5的自然数表示如下:··· 6x-1,6x,6x+1,6x+2,6x+3,6x+4,6x+5,6(x+1),6(x+1)+1 ···可以看到,不在6的倍数两侧,即6x两侧的数为6x+2,6x+3,6x+4,由于2(3x+1),3(2x+1),2(3x+2),所以它们一定不是素数,再除去6x本身,显然,素数要出现只可能出现在6x的相邻两侧因此 当 x > 5 时, 质数一定出现在 6x -1 和 6x + 1 两序列之内参考代码原创 2020-10-15 20:32:39 · 840 阅读 · 0 评论 -
摆动序列(C++)
题目描述如果一个序列的奇数项都比前一项大,偶数项都比前一项小,则称为一个摆动序列。 即 a2i<ai−1 , a2i+1>a2ikekao想知道,长度为 m,每个数都是 1 到n 之间的正整数的摆动序列一共有多少个。输入格式:输入一行包含两个整数 m,n。输出格式:输出一个整数,表示答案。答案可能很大,请输出答案除以10000的余数。输入样例:在这里给出一组输入。例如:3 4输出样例:在这里给出相应的输出。例如:14样例说明: 以下是符合要求的摆动序列:2 1 2原创 2020-10-13 16:10:05 · 817 阅读 · 0 评论 -
密码脱落 C++
题目描述X星球的考古学家发现了一批古代留下来的密码。 这些密码是由几种植物的种子串成的序列。植物种类由26个大写英文字母表示,即最多有26种植物。 仔细分析发现,这些密码串当初应该是前后对称的(也就是我们说的镜像串)。 由于年代久远,其中许多种子脱落了,因而可能会失去镜像的特征。考古学家给kekao的任务是: 给定一个现在看到的密码串,计算一下从当初的状态,它要至少脱落多少个种子,才可能会变成现在的样子。输入格式:输入一行,表示现在看到的密码串(长度不大于1000)输出格式:要求输出一个正整数,原创 2020-10-11 20:07:01 · 314 阅读 · 0 评论 -
最低通行费C++
问题描述最低通行费一个商人穿过一个 N*N 的正方形的网格,去参加一个非常重要的商务活动。他要从网格的左上角(1,1)出发,到(n,n)。只能往下或者往右走。而在经过中间的每个小方格时(i,j),都需要缴纳一定的费用 val[i][j]。这个商人期望在规定时间内用最少费用穿越出去。请问至少需要多少费用?51 4 6 8 10 2 5 7 15 17 6 8 9 18 20 10 11 12 19 21 20 23 25 29 33ans=109样例中,最小值为109=1+2+5原创 2020-10-09 22:47:08 · 730 阅读 · 0 评论 -
春游 C++(半对)(最小字典序)
题目描述春天阳光灿烂,小宋突然心血来潮想骑自行车去学校外面玩,但是到达目的地的路线不止一条,他想尽快的到达目的地,又能不需要骑太远的路, 你能帮助他吗?输入格式:输入包含一个测试数据,第一行有三个整数n(2 <= n <= 1000),途中可能经过的地点的个数,地点编号1~n;m(1 <= m <= 10000),为路径的条数;d(2 <= d <= n),目的地编号;其中学校为起点,默认为1。接下来m行: x y time dist , x y表示地点x,y是可以原创 2020-10-01 20:21:15 · 1962 阅读 · 6 评论 -
毕业照C++(自定义排序)
题目描述照毕业照一定要排好队,不然就会有人被挡住,造成终身遗憾。假设有N个毕业生,准备排K行,拍毕业照的摄影师定下这么几条规矩: 1、每一行的人数一定是N/K个,如果有多的同学,全部站最后一排; 2、后排的一定不能比前排任何一个同学矮; 3、在任意一排,个子最高的站中间,之后次高的站他的右边,第三高的站他的左边,第四高的又站右边,这样依次轮换。例如,有5个同学,身高依次是190厘米,188厘米,186厘米,175厘米和170厘米,那么最后应该排成175,188, 190,186, 170。这里我们假设摄影原创 2020-10-01 20:17:02 · 583 阅读 · 0 评论 -
微商中的便宜货 C++(图的遍历)
题目描述目前朋友圈微商横行,各种直销、代理,让人目不暇接,但是商品在流通过程中一定会层层加价,这个规律肯定不会变。为简便起见,我们假设从生产厂商出发,每经过一级代理,就加价r%,而微商的中间代理商不负责销售,只有最后的销售商才负责销售。如果告诉你微商的流通链,你能找到在售价最便宜的销售商吗?输入格式:第一行首先输出三个数N,P,R,分别是微商参与者的人数,商品出厂价格以及加价的比例。我们假设微商参与者从0到N-1编号,0号是生产厂商。随后N行分别给出每一个代理商的代理情况,按以下格式给出:K ID[原创 2020-10-01 20:14:59 · 936 阅读 · 0 评论 -
任意进制下的可逆素数 C++
题目描述任意进制下的可逆素数是这样定义的:它自身是一个素数,当它转换为任意进制之后,把所有数字逆序,得到的新数字的值仍然是一个素数。比如,73在十进制下是一个素数,它在十进制下的逆37也是一个素数,那就称它是十进制下是一个可逆素数。输入格式:输入有多行,每行包括两个正整数,数N以及基R,其中N<100000, 1<D<=10, 遇到负数则退出。输出格式:对每一行输入,如果是可逆素数,则输出“Yes”,否则输出“No”输入样例:在这里给出一组输入。例如:73 1023 2原创 2020-10-01 20:12:43 · 1350 阅读 · 0 评论 -
毒酒检测C++
问题描述1000瓶酒中恐1瓶有毒,饮毒者10分钟内必亡(与多少无关),现考虑用尽量少的小白鼠试毒。方案A:酒分两大份,取一份让鼠1均饮之,知一份中有毒,再分成两大份,取一份让鼠2均饮之,知一份中有毒,……如此,1000瓶酒,10只鼠足矣。然100分钟太久,升级为方案B:酒分两大份,取一份让鼠1均饮之,两份再分成四份,各取两份让鼠2均饮之,四份再分成八份,各取四份让鼠3均饮之,……如此,1000瓶酒,10只鼠10+分钟可行。最终形成易操作性执行方案C:鼠1隔一瓶饮一,鼠2隔两瓶饮二,鼠3隔四瓶饮四瓶,鼠4隔原创 2020-10-01 20:09:09 · 697 阅读 · 0 评论 -
2020年4月蓝桥杯第二次模拟赛(C++)
1 容量单位【问题描述】在计算机存储中,12.5MB是多少字节?【答案提交】这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。答案12.5 × 1024 × 1024 = 13107200//TB MB KB Byte bit 换算关系K是千 M是兆bai G是吉咖 T是太拉8bit(位)=1Byte(字节)1024Byte(字节)=1KB1024KB=1MB1024MB=1GB1024GB=1TB2原创 2020-07-18 22:38:03 · 552 阅读 · 0 评论 -
序列计数(记忆化搜索)(C++)
【问题描述】小明想知道,满足以下条件的正整数序列的数量:第一项为 n;第二项不超过 n;从第三项开始,每一项小于前两项的差的绝对值。请计算,对于给定的 n,有多少种满足条件的序列。【输入格式】输入一行包含一个整数 n。【输出格式】输出一个整数,表示答案。答案可能很大,请输出答案除以10000的余数。【样例输入】4【样例输出】7【样例说明】以下是满足条件的序列:4 14 1 14 1 24 24 2 14 34 4【评测用例规模与约定】对于 20% 的评测用例原创 2020-07-18 14:37:33 · 432 阅读 · 0 评论 -
蓝桥杯 打印十字图(BFS染色法)
资源限制时间限制:1.0s 内存限制:256.0MB问题描述小明为某机构设计了一个十字型的徽标(并非红十字会啊),如下所示:对方同时也需要在电脑dos窗口中以字符的形式输出该标志,并能任意控制层数。输入格式一个正整数 n (n<30) 表示要求打印图形的层数。输出格式对应包围层数的该标志。样例输入11样例输出1样例输入23样例输出2提示请仔细观察样例...原创 2020-03-02 22:00:57 · 306 阅读 · 0 评论 -
小字辈(BFS+结构体数组邻接表)
#include <cstdio>#include <algorithm>#include <cstring>#include <cmath>#include <iostream>#include <queue> using namespace std;#define MAXN 100005struct...原创 2020-02-29 11:58:22 · 175 阅读 · 0 评论 -
一元多项式的乘法与加法运算(数组+排序)
#include <cstdio>#include <algorithm>#include <cstring>#include <cmath>#include <iostream>#include <queue>using namespace std;#define MAXN 1005struct no...原创 2020-02-28 23:06:52 · 545 阅读 · 0 评论 -
喊山 (30分) BFS+结构体数组模拟邻接表
一个山头呼喊的声音可以被临近的山头同时听到。题目假设每个山头最多有两个能听到它的临近山头。给定任意一个发出原始信号的山头,本题请你找出这个信号最远能传达到的地方。输入格式:输入第一行给出3个正整数n、m和k,其中n(≤10000)是总的山头数(于是假设每个山头从1到n编号)。接下来的m行,每行给出2个不超过n的正整数,数字间用空格分开,分别代表可以听到彼此的两个山头的编号。这里保证每一对山头只...原创 2020-02-05 12:17:22 · 374 阅读 · 0 评论 -
7-8 最长对称子串 (25分) (暴力)C++
思路:枚举以i为对称轴的最长对称字符串,分为奇数串和偶数串两种情况。#include <cstdio>#include <algorithm>#include <cstring>#include <cmath>#include <iostream>#include <string>using namespa...原创 2020-02-05 11:56:44 · 822 阅读 · 0 评论 -
(C/C++)递增三元组
#include <cstdio>#include <algorithm>#include <cstring>#include <cmath>#include <iostream>using namespace std;int a[10005];int N;int date_min[10005];int date_max[10005];int main(){ //freopen("test.in","r",st原创 2020-07-15 16:43:09 · 471 阅读 · 0 评论