自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(45)
  • 资源 (4)
  • 问答 (1)
  • 收藏
  • 关注

原创 C++排序算法(2)

之前我写过博客关于六种排序的代码,但是如果你只想运用一下排序,我们就需要写一个排序函数,今天我就带着大家来写排序的函数!1.桶排序函数:void Bucketsort(int l,int r){//定义数组需要排序的左端点与右端点 int t[10005];//定义桶数组 memset(t,0,sizeof t); for(int i=l;i<=r;i++) t[a[i]]++; for(int i=1;i<=10000;i++){ if(t[i]!=0){ for(

2021-08-16 17:55:05 71

原创 C++排序算法

我们学习C++的时候最常见到的算法之一就是排序算法了,今天我写了一篇博客关于各种排序。1.桶排序代码:#include<bits/stdc++.h>//调用万能头文件 using namespace std;#define MAX 105//定义数组长度int n,a[MAX],t[MAX];int main(){ memset(t,0,sizeof t);//桶数组初始化为0 cin>>n;//读入数组元素数量,也可以用scanf("%d",&a

2021-08-10 10:56:08 106

原创 【NOIP1999普及组】回文数 C++题解

题目描述:若一个数(首位不为零)从左向右读与从右向左读都一样,我们就将其称之为回文数。例如:给定一个10进制数56,将56加65(即把56从右向左读),得到121是一个回文数。又如:对于10进制数87:STEP1:87+78 = 165STEP2:165+561 = 726STEP3:726+627 = 1353STEP4:1353+3531 = 4884在这里的一步是指进行了一次N进制的加法,上例最少用了4步得到回文数4884。写一个程序,给定一个N(2<=N&l

2022-01-25 09:46:30 677

原创 【C++】最多因子数 C++题解

题目描述:数学家们喜欢各种类型的有奇怪特性的数。例如,他们认为945 是一个有趣的数,因为它是第一个所有约数之和大于本身的奇数。为了帮助他们寻找有趣的数,你将写一个程序扫描一定范围内的数,并确定在此范围内约数个数最多的那个数。不幸的是,这个数和给定的范围的都比较大,用简单的方法寻找可能需要较多的运行时间。所以请确定你的算法能在几秒内完成最大范围内的扫描。输入格式:只有一行,给出扫描的范围,由下界L 和上界U 确定。满足 2≤L≤U≤10^9。输出格式:对于给定的范围,输出该范围...

2021-12-15 13:47:08 1180

原创 【贪心】糖果传递 C++题解

题目描述:有n个小朋友坐成一圈,每人有ai颗糖果。每人只能给左右两人传递糖果。每人每次传递一颗糖果的代价为1。求使所有人获得均等糖果的最小代价。输入格式:第一行有一个整数n,表示小朋友个数;在接下来n行中,每行一个整数ai。...

2021-12-14 13:30:59 1333

原创 【递归】求阶乘 C++题解

C++刚入门的学习者,阶乘一定用的是最基本的循环。但阶乘可以用算法来写吗?答案是有的,今天就给大家带来递归版阶乘代码!所谓阶乘,就是用1乘到n,记作n!,下面是用循环写的代码:#include<iostream>using namespace std;int main(){ int n,sum=1;//乘法当然要从1开始了! cin>>n;//读入n。 for(int i=1;i<=n;i++) sum*=i;//求阶乘步骤。 cout<<su

2021-12-14 13:24:05 2531

原创 【递推】种萝卜 C++题解

题目描述:一农夫挖了n个坑,准备种萝卜,n个坑排成一条直线,农夫认为如果连续m个坑都放入萝卜种子,那么就会影响萝卜的生长,所以某些坑中就不能放萝卜种子。本题的任务是:对于给定的n和m,求不影响生长的种法的总数。输入格式:一行两个正整数n和m,之间用空格隔开0≤n≤64 , 0≤m≤5输出格式:一行一个正整数,表示正确种法的总数。样例输入:4 3样例输出:13C++代码:#include<iostream>#include<cstd

2021-11-16 16:53:06 1098

原创 【贪心】种树 C++题解

题目描述:某条街被划为n条路段,这n条路段依次编号为。每个路段最多可以种一棵树。现在居民们给出了组建议,每组建议包含三个整数,表示居民希望在路段到之间至少要种棵树。这些建议所给路段的区间可以交叉。请问:如果要满足所有居民的建议,至少要种多少棵树。...

2021-11-09 12:58:31 2140

原创 【贪心】流水作业调度 C++题解

题目描述:有句谚语说如果马有投票权,世界上不会有汽车。而事实是就算马有投票权,它们还是会被汽车淘汰。正所谓生产力和科技进步的车轮是谁也无法抵挡的。魔法世界的工业生产早已实现了自动化,虽然这曾经引起长达十余年的由失业工人发动的大规模抗议浪潮。话说逆转“时空陷”的机器就是在魔法学院的自动化生产线上完成的,已知完成N个作业要在由两台机器M1和M2组成的流水线上完成加工,每个作业i必须先在M1上然后在M2上加工,时间分别为ai和bi。确定这n个作业的加工顺序,使得从第一个任务开始在M1上加工到最后一个任

2021-10-15 13:47:54 616

原创 【贪心】流水作业调度(调度问题) C++题解

题目描述:某工厂的加工车间里,n个不同的产品在由两台机器M1和M2组成的流水线上完成加工。每个产品i必须先在M1上然后在M2上加工,时间分别是ai和bi,为了减少时间降低成本,厂长请编程社的大神们确定n个产品的加工顺序,使得从第一个产品开始在M1上加工到最后一个产品在M2上加工完成的这段所需时间尽量少。输入格式:共n+1行第一行:一个n,表示产品数量(1≤n≤100)后n行:每行分别输入该产品在M1和M2上的加工时间,用空格分开(1≤ai,bi≤100)输出格式:从第一个产品开始

2021-10-15 13:39:25 1569

原创 【NOIP1999 普及组】回文数

题目描述:若一个数(首位不为零)从左向右读与从右向左读都一样,我们就将其称之为回文数。例如:给定一个十进制数 56,将 56 加 65(即把 56 从右向左读),得到 121 是一个回文数。又如:对于十进制数 87:STEP1:87+78=165STEP2:165+561=726STEP3:726+627=1353STEP4:1353+3531=4884在这里的一步是指进行了一次 N 进制的加法,上例最少用了 4 步得到回文数 4884。写一个程序,给定一个 N(2≤N≤10

2021-10-04 16:41:51 583

原创 【入门】校门外的路灯(版本2) C++题解

题目描述:校门外有N盏路灯,编号从1到N。亮的灯用1表示,熄的灯用0表示。给出每盏灯是亮着的还是熄灭的。请编程算一算,都亮的最长的一段连续路灯有多少盏?从第几盏灯到第几盏灯?输入格式:第1行:1个整数N,表示路灯的数量 1 <= N <= 100000第2行:N个空格分开的整数,仅为1或者0,含义如题面所示输出格式:第1行:1个整数,表示答案。测试数据保证有解第2行:2个整数,表示最长的一段连续亮灯的灯的起始和结束编号。如果有多段连续亮灯的最大长度相同,输出起始编

2021-09-24 14:07:44 258 1

原创 【入门】校门外的路灯(版本1) C++题解

题目描述:校门外有N盏路灯,编号从1到N。亮的灯用1表示,熄的灯用0表示。给出每盏灯是亮着的还是熄灭的。请编程算一算,都亮的最长的一段连续路灯有多少盏?输入格式:第1行:1个整数N,表示路灯的数量 1 <= N <= 100000第2行:N个空格分开的整数,仅为1或者0,含义如题面所示输出格式:第1行:1个整数,表示答案。如果没有亮的灯,输出0样例输入:100 1 1 0 1 1 1 1 0 0样例输出:4代码:#include<

2021-09-24 14:00:15 315 1

原创 【NOIP2002 提高组】自由落体

题目描述:在高为HH的天花板上有nn个小球,体积不计,位置分别为0,1,2,\cdots,n-10,1,2,⋯,n−1。在地面上有一个小车(长为LL,高为KK,距原点距离为S_1S1​)。已知小球下落距离计算公式为d=0.5 \times g \times (t^2)d=0.5×g×(t2),其中g=10g=10,tt为下落时间。地面上的小车以速度VV前进。如下图:小车与所有小球同时开始运动,当小球距小车的距离\le 0.0001≤0.0001(感谢 Silve...

2021-09-24 13:56:24 543

原创 【深基5.例7】工艺品制作 C++题解

题目描述:现有一个长宽高分别为 w,x,h(1≤w,x,h≤20)组成的实心玻璃立方体,可以认为是由 1×1×1的数个小方块组成的,每个小方块都有一个坐标( i,j,k )。现在需要进行q(q≤100)次切割。每次切割给出(x1​,y1​,z1​),(x2​,y2​,z2​)这 6 个参数,保证 x1​≤x2​,y1​≤y2​,z1​≤z2​;每次切割时,使用激光工具切出一个立方体空洞,空洞的壁平行于立方体的面,空洞的对角点就是给出的切割参数的两个点。换句话说,所有满足 x1​≤i≤x2​...

2021-09-16 13:31:00 366

原创 【MC生存】插火把 C++题解

题目描述:话说有一天 linyorson 在“我的世界”开了一个n * n(n≤100)的方阵,现在他有m个火把和k个萤石,分别放在(x1, y1)~(xm, ym)和(o1​,p1​)~(ok​,pk​)的位置,没有光或没放东西的地方会生成怪物。请问在这个方阵中有几个点会生成怪物?P.S. 火把的照亮范围是: |暗|暗| 光 |暗|暗| |暗|光| 光 |光|暗| |光|光|火把|光|光| |暗|光| 光 |光|暗| |暗|暗| 光 |暗|暗|...

2021-09-16 13:12:34 1134

原创 C++ 快读快写

学C++的人都知道,判题里面有一种错误叫 Time Limit Exceeded 简称TLE,为什么会TLE呢?因为程序的罚时超过了规定罚时,于是今天就带给大家一个减少罚时的方法——快读快写。我就把快读快写的模板放这了:快读的代码:int read(){ int s=0,w=1; char ch=getchar(); while(ch<'0'||ch>'9'){ if(ch=='-') w=-1; ch=getchar();

2021-09-10 16:01:01 1033

原创 【NOIP2006 普及组】开心的金明 C++题解

题目描述:金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间他自己专用的很宽敞的房间。更让他高兴的是,妈妈昨天对他说:“你的房间需要购买哪些物品,怎么布置,你说了算,只要不超过N元钱就行”。今天一早金明就开始做预算,但是他想买的东西太多了,肯定会超过妈妈限定的N元。于是,他把每件物品规定了一个重要度,分为5等:用整数1−5表示,第5等最重要。他还从因特网上查到了每件物品的价格(都是整数元)。他希望在不超过N元(可以等于N元)的前提下,使每件物品的价格与重要度的乘积的总和最大。设第jj件物品的价

2021-09-09 13:54:57 670

原创 【堆】二叉堆 C++模板

2021暑假新学到了堆及其运用,下面给大家带来C++堆的模板:模板1 二叉堆元素上浮:void up(int i){ while(i>1&&heap[i]>heap[i>>1]){ swap(heap[i],heap[i>>1]); i>>=1; }}模板2二叉堆元素下沉:void down(int i){ while(i*2<=n){ int t=i*2; if(t+1<=n&.

2021-08-23 13:42:34 117

原创 【入门】这个月有多少天? C++题解

题目描述:输入一个正整数 X ,输出第x月的天数。(不需要考虑闰年,都是平年)输入格式:一个整数 X 。输出格式:第 X 月的天数。C++代码:#include<bits/stdc++.h>using namespace std;int main(){ int x; cin>>x; if(x==1||x==3||x==5||x==7||x==8||x==10||x==12) cout<<31<<endl; if(x==

2021-08-16 13:14:33 403

原创 【入门】计算平均分 C++题解

题目描述:竞赛小组共有10位同学,每位同学共参与了三项比赛,请统计每位同学的平均分。(不考虑小数部分)输入格式:2 66 2079 16 349 85 5268 7 5751 98 042 22 413 72 928 70 3752 85 1295 14 65输出格式:29326244493528454958C++代码:#include<bits/stdc++.h>using namespace std;int main.

2021-08-16 12:44:36 1830

原创 【POI】折线 C++题解

题目描述:给定二维直角坐标系。我们要求一条折线只能从左边到右边一笔画过去,并且折线的每一段和x轴的夹角在[-45°, 45°]之间。一条满足上述要求的折线被称为:平直折线。给定坐标系上的n个格点,最少需要画多少条平直折线才能覆盖所有的点呢?输入格式:第一行一个正整数n,表示点的数目。接下来的n 行为每个点的坐标(x, y)。输出格式:最少需要多少条平直折线。样例输入:52 33 44 51 612 27样例输出:3代码:...

2021-08-11 11:40:24 181

原创 【并查集】犯罪集团 C++题解

题目描述:警察抓贩毒集团。有不同类型的犯罪集团,人员可能重复,集团内的人会相互接触。现在警察在其中一人(0号)身上搜出毒品,认为与这个人直接接触或通过其他人有间接接触的人都是嫌疑犯。问包括0号犯人共有多少嫌疑犯?输入格式:多样例输入。每个测试用例以两个整数n和m开头,其中n为人数,m为犯罪集团数。你可以假定0 < n <= 30000和0 <= m <= 500。在所有的情况下,每个人都有自己独特的整数编号0到n−1, 且0号是公认的嫌疑犯。接下来m行输入,每个犯

2021-08-10 11:20:56 168

原创 【POI】天然气管道Gaz C++题解

题目背景:Mary 试图控制成都的天然气市场。题目描述:专家已经标示出了最好的天然气井和中转站在成都的地图。现在需要将中转 站和天然气井连接起来。每个中转站必须被连接到正好一个钻油井,反之亦然。Mary 特别指名,建设的天然气管道必须从某个天然气井开始,向南或者向东建设。Mary 想知道怎么连接每个天然气井和中转站,使得需要的天然气管道的总长度最小。输入格式:第一行为一个正整数n,表示天然气井的数量(中转站的数量与之相等)。接下来n行,每行两个整数xi​和yi​,表...

2021-08-07 13:05:16 123

原创 【入门】球弹跳高度的计算 C++题解

题目描述:一球从某一高度h落下(单位米),每次落地后反跳回原来高度的一半,再落下。编程计算气球在第10次落地时,共经过多少米? 第10次反弹多高? 输出包含两行,第1行:到球第10次落地时,一共经过的米数。第2行:第10次弹跳的高度。输入格式:输入一个整数h,表示球的初始高度。输出格式:第1行:到球第10次落地时,一共经过的米数。第2行:第10次弹跳的高度。注意:结果可能是实数,结果用double类型保存。提示:输出时不需要对精度特殊控制,用cout<<ANSWE

2021-08-06 19:20:29 3270

原创 【入门】诚诚坐过山车 C++题解

题目描述:诚诚想要挑战一下自己,于是打算去玩过山车。过山车一排只坐一个人,诚诚胆子比较小,他要求必须坐在前面有人或者后面有人的空位置。诚诚上车前只知道这批过山车总共有n个位置,已经有k个人坐上去了,请帮助诚诚计算一下最少有多少个位置符合他的要求,最多有多少个位置符合他的要求。注:第一个位置的前面和最后一个位置的后面我们认为是没有人。输入格式:输入有两个整数n和k,n表示过山车座位的个数,k表示过山车上已有的人数。输出格式:输出两个整数,分别表示最少和最多符合他要求的位置。

2021-08-06 18:58:36 553

原创 【高精度】高精度除以高精度 C++题解

题目描述:输入两个正整数,求它们的商和余数。分析:高精度除以高精是用减法模拟除法,对被除数的每一位都减去除数,一直减到当前位置的数字小于除数。代码:#include<bits/stdc++.h>using namespace std;#define MAX 105int a[MAX],b[MAX],c[MAX],d,i;void init(int a[]){ string s; cin>>s; a[0]=s.length(); for(int i

2021-08-04 19:25:32 2357

原创 【入门】明明的随机数 C++题解

题目描述:明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数(N≤100),对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不同的学生的学号。然后再把这些数从小到大排序,按照排好的顺序去找同学做调查。请你协助明明完成“去重”与“排序”的工作。输入格式:输入有两行,第1行为1个正整数,表示所生成的随机数的个数N第2行有N个用空格隔开的正整数,为所产生的随机数。输出格式:输出也是两行,第1行为1个正整数M,表示

2021-08-03 12:21:07 314

原创 【NOIP2002 普及组】 过河卒 C++题解

题目描述:棋盘上A点有一个过河卒,需要走到目标B点。卒行走的规则:可以向下、或者向右。同时在棋盘上C点有一个对方的马,该马所在的点和所有跳跃一步可达的点称为对方马的控制点。因此称之为“马拦过河卒”。棋盘用坐标表示,A点(0, 0)、B点(n, m),同样马的位置坐标是需要给出的。现在要求你计算出卒从A点能够到达B点的路径的条数,假设马的位置是固定不动的,并不是卒走一步马走一步。输入格式:一行四个正整数,分别表示B点坐标和马的坐标。输出格式:一个...

2021-08-03 12:06:13 627

原创 【字符】C++中字符的用法

我们刚开始学C++,就学过输入输出。整数型和长整型输入输出还算简单,最让人头疼的就是字符型的输入输出。今天我就写了一篇博客关于字符的用法。字符的定义就不用我说了吧,你就定义一个char就可以了。字符的输入你可以用scanf()也可以用cin(我个人认为cin更简单)。字符的输出就用cout啦,当然如果遇到ASCII码的话还是用printf()。现在我们来看看字符转ASCII码的代码:#include<bits/stdc++.h>using namespace std;int

2021-08-02 10:30:28 263

原创 【高精度】高精度除以低精度 C++题解

题目描述:输入两个正整数,求它们的商(做整除)。分析:做除法时,每一次的商的值都在0~9之间,每次求得的余数连接以后的若干位得到新的被除数,继续做除法。因此,在做高精度除法时,要涉及到乘法运算和减法运算,还有移位处理。当然,为了程序简洁,可以避免高精度乘法,用0~9次循环减法取代得到商的值。这里,我们讨论一下高精度数除以单精度数的结果,采取的方法是按位相除法。话不多说,上代码:#include<bits/stdc++.h>using namespace std;#def

2021-08-01 14:50:15 1727 2

原创 【高精度】高精度乘法 C++题解

题目描述:给出两个高精度整数,均不超过300位。求他们的乘积。输入格式:两行,表示两个不超过300位的整数。输出格式:一个整数,表示乘积。样例输入:1234567890098765432100样例输出:1219326311126352690000代码:#include<bits/stdc++.h>using namespace std;int main(){ char str1[256],str2[256]; int a.

2021-08-01 14:23:27 112

原创 【字符、字符串】判断回文串 C++

题目描述:输入一串字符,判断是否回文。输入格式:一行字符串。输出格式:YES或NO,表示回文或非回文。样例输入:aba样例输出:YES思路:先输入字符串,再用栈去储存,判断字符串是否左右回文。代码:#include<bits/stdc++.h>using namespace std;#define MAX 105char a[MAX],s[MAX];int main(){ int len,mid,next,top; gets(a);/

2021-08-01 14:00:01 1196

原创 C++小游戏 小球快跑

这是一款初学者都能看懂代码的小游戏,只有不到30行代码。话不多说,上代码。#include<bits/stdc++.h>#include<windows.h>#include<unistd.h>#include<conio.h>using namespace std;int main(){ int y=0,x=0; printf("请按w,a,s,d键控制小球移动\n"); printf("请按空格键退出游戏\n"); Sleep(10

2021-07-30 15:17:03 439

原创 【高精度】高精度减法 C++题解

题目描述:输入两个整数a,b(a,b的位数都小于300位)求a-b的值。输入格式:两行,各有一个不超过300位的整数。输出格式:a-b的差值。样例输入:800900样例输出:-100代码:#include<bits/stdc++.h>using namespace std;#define MAX 305//定义数字位数 string sd,se,sa; int a[MAX],b[MAX],c[MAX],mc,me,mz,n,mo=0;.

2021-07-30 14:41:46 262

原创 【高精度】高精度加法 C++题解

题目描述:给出两个整数a,b;求他们的和。a,b的位数不超过300位。输入格式:第一行一个整数a第二行一个整数b输出格式:输出只有一行,为两个整数的和。样例输入:101000000000000203000000000000样例输出:304000000000000代码:#include<bits/stdc++.h>using namespace std;#define MAXN 305int a[MAXN],b[MAXN],c[M.

2021-07-30 14:30:53 294

原创 【高精度】阶乘之和 C++题解

题目描述:用高精度计算出S = 1! + 2! + 3! + …… + n!(n≤50)。其中“!”表示阶乘,例如:5! = 5 × 4 × 3 × 2 × 1。输入格式:一个正整数n。输出格式:一个正整数S,表示计算结果。样例输入:3样例输出:9代码:#include<bits/stdc++.h>using namespace std;#define MAX 2005 int a[MAX],b[MAX],c[MAX],sum[MAX...

2021-07-30 14:17:21 2239

原创 C++小游戏 字符跑酷

这是一款用C++写的好玩的小游戏,只有一百五十多行。话不多说,上游戏源代码。#include<bits/stdc++.h>#include<unistd.h>#include<conio.h>using namespace std;void pg(){ cout<<"有一天,你被抓到了王宫里......"<<endl; sleep(1); cout<<"你想逃出去......"<<endl;

2021-07-29 15:12:58 1871 1

原创 C++小游戏 苍穹世界2.2 测试版

这是一款用C++写的小游戏。由于代码过长、时间有限,以前版本格式有问题,所以代码缩进不是很规范,如果各位有时间的话帮忙修改一下。话不多说,直接上源代码。#include<bits/stdc++.h> #include<windows.h>struct Player{//玩家结构体,并初始化player char name[21]; int attack; int defense; int health; long int max_health; int leve

2021-07-29 13:33:18 974

原创 【入门】 三角函数 C++题解

题目描述:输入一组勾股数a,b,c,用分数格式输出其较小锐角的正弦值。(要求约分。)输入格式:一行,包含三个正整数,即勾股数a,b,c(无大小顺序)。输出格式:一行,包含一个分数,即较小锐角的正弦值样例输入:3 5 4样例输出:3/5代码:#include<bits/stdc++.h>using namespace std;int main(){ int a[4]; for(int i=0;i<3;i++) cin&..

2021-07-28 21:33:32 303

高精度讲义(加法、减法、乘法、除法)

这是一个很适合C++学习者的一个资源,里面有高精度代码和讲义(可以自学哦)。

2022-01-25

二叉堆储存方式 图片 QAQ

C++算法学习者

2021-08-16

屏幕截图(28).png

C++算法学习者

2021-08-15

C++ 数论 质数筛法 图片资料

适合C++/C语言学习者

2021-08-10

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除