- 博客(40)
- 收藏
- 关注
原创 pdf合并工具
链接:https://pan.xunlei.com/s/VOL9eDuT7aaUS0n2gVuAKJHTA1?选择需要合并的pdf,然后点击合并pdf就可以了。复制这段内容后打开迅雷,查看更方便。分享文件:合并pdf.exe。放在网盘中需要自取。
2025-03-12 22:04:48
503
原创 dp背包问题
有NN件物品和一个容量是VV的背包。每件物品只能使用一次。第ii件物品的体积是vivi,价值是wiwi。求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。输出最大价值。输入格式第一行两个整数,N,VN,V,用空格隔开,分别表示物品数量和背包容积。接下来有NN行,每行两个整数vi,wivi,wi,用空格隔开,分别表示第ii件物品的体积和价值。输出格式输出一个整数,表示最大价值。#include <iostream>...
2022-03-29 20:09:51
209
原创 完全背包问题
有 N种物品和一个容量是 V 的背包,每种物品都有无限件可用。第 i 种物品的体积是 vi,价值是 wi。求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。输出最大价值。输入格式第一行两个整数,N,V,用空格隔开,分别表示物品数量和背包容积。接下来有 N 行,每行两个整数 vi, wi,用空格隔开,分别表示第 i 件物品的体积和价值。输入样例 输出样例 104 51 22 43 44 5#include<iostre...
2022-03-29 20:07:50
174
转载 dfs(迷宫路径个数)
给定一个N*M方格的迷宫,迷宫里有T处障碍,障碍处不可通过。给定起点坐标和终点坐标,问: 每个方格最多经过1次,有多少种从起点坐标到终点坐标的方案。在迷宫中移动有上下左右四种方式,每次只能移动一个方格。数据保证起点上没有障碍。题目描述无输入格式第一行N、M和T,N为行,M为列,T为障碍总数。第二行起点坐标SX,SY,终点坐标FX,FY。接下来T行,每行为障碍点的坐标。输出格式给定起点坐标和终点坐标,问每个方格最多经过1次,从起点坐标到终点坐标的方案总数。输入输出样例输入 #1
2022-03-16 19:03:29
457
原创 二分答案。
#include <iostream>#include <algorithm>using namespace std;long long a[100005];int n,k;bool check(int m){ long long ans=0; for(int i=0;i<n;i++) { ans+=a[i]/m; } return ans>=k;}int erfen(int l,int h).
2022-03-08 20:17:24
119
原创 深搜DFS(最短路径)
求迷宫的最短路径#include <iostream>#include <climits>using namespace std; int n;char a[105][105];int d[105][105];int fx[5]={0,0,1,0,-1};int fy[5]={0,1,0,-1,0}; void dfs(int x,int y,int dep){ d[x][y]=dep; int tx,ty; for(int i
2022-02-24 17:38:51
537
原创 广搜BFS(最短路径问题)
求走出迷宫的最优解步数 .可以过 *不可以过输入 输出 42.*..*...#include <iostream>using namespace std;char a[105][105][105]; //三维数组表示迷宫int q[1000005][10];int fx[7]={0,0,1,0,-1,0,0};int fy[7]={0,1,0,-1,0,0,0};int fz[7]={0,0,0,0,0,1,-1};int main (...
2022-02-24 17:25:42
445
原创 求最大公约数
#include <iostream>#include <cmath>using namespace std;int main (){ int a,b,t; cin >> a>> b; while(a!=b) { t=abs(a-b); a=b; b=t; } cout << a << endl; return 0;}.
2022-02-18 17:03:20
269
原创 迷宫问题(dfs)
给出一个n*m的迷宫,其中标记为1的为障碍,标记为0的为可以通行的地方。迷宫的入口为左上角,出口为右下角,只能从一个位置走到这个它的上、下、左、右四个方向之一。如果能顺利走出迷宫就输出YES,否则输出NO输入 输出 YES2 20 11 0#include <iostream>using namespace std;int n,m;int a[505][505];bool f=false;int fx[5]={0,0,1,0,-1};int f...
2022-02-17 23:05:05
820
原创 全排列 (回溯)
#include <iostream>using namespace std;int n;int a[100],pd[100];void print(){ for(int i=1;i<=n;i++) { cout << a[i] << ' '; } cout << endl;}void dfs(int k){ if(k==n) { print(); .
2022-02-17 15:24:03
362
原创 二分查找法
用于有序序列#include <iostream>using namespace std;int erfen(int a[],int r,int target){ int low=0,hight=r,middle; while(low<=hight) { middle=(low+hight)/2; if(a[middle]==target) { return middle;
2022-02-02 16:50:31
536
原创 求先序排列(已知中序和后序求先序)
#include <bits/stdc++.h>using namespace std;char b[20],c[20];void shu(int bl,int br,int cl,int cr){ cout << c[cr]; int bk; //记录根点的位置 for(int i=bl;i<=br;i++) { if(c[cr]==b[i]) { bk=i; .
2022-01-30 13:10:28
1020
原创 逆序对(归并排序应用)
#include <bits/stdc++.h>using namespace std;int a[500010],c[500010];long long s=0;void mergesort(int l,int r){ if(l==r) { return; } int mid=(l+r)/2; mergesort(l,mid); mergesort(mid+1,r); int i=l,j=mid+1,k=0;.
2022-01-29 15:16:53
127
原创 归并排序(代码)
#include <bits/stdc++.h>using namespace std;int a[100010],c[100010];void mergesort(int l,int r){ if(l==r) { return; } int mid=(l+r)/2; mergesort(l,mid); mergesort(mid+1,r); int i=l,j=mid+1,k=0; while(i<.
2022-01-29 14:56:43
114
原创 c++快读模板
inline int read(){ int x = 0, f = 1; char ch = getchar(); while(ch < '0' || ch > '9'){ if (ch == '-') f = -1; ch = getchar(); } while(ch >= '0' && ch <= '9'){ x = (x<<1) +...
2022-01-25 09:41:54
904
原创 校门外的树(数据较大)
题目描述某校大门外长度为 ll 的马路上有一排树,每两棵相邻的树之间的间隔都是 11 米。我们可以把马路看成一个数轴,马路的一端在数轴 00 的位置,另一端在 ll 的位置;数轴上的每个整数点,即 0,1,2,\dots,l0,1,2,…,l,都种有一棵树。由于马路上有一些区域要用来建地铁。这些区域用它们在数轴上的起始点和终止点表示。已知任一区域的起始点和终止点的坐标都是整数,区域之间可能有重合的部分。现在要把这些区域中的树(包括区域端点处的两棵树)移走。你的任务是计算将这些树都移走后,马路上还有多
2022-01-25 09:41:11
149
原创 校门前的树
题目描述某校大门外长度为ll的马路上有一排树,每两棵相邻的树之间的间隔都是11米。我们可以把马路看成一个数轴,马路的一端在数轴00的位置,另一端在ll的位置;数轴上的每个整数点,即0,1,2,\dots,l0,1,2,…,l,都种有一棵树。由于马路上有一些区域要用来建地铁。这些区域用它们在数轴上的起始点和终止点表示。已知任一区域的起始点和终止点的坐标都是整数,区域之间可能有重合的部分。现在要把这些区域中的树(包括区域端点处的两棵树)移走。你的任务是计算将这些树都移走后,马路上还有多...
2022-01-05 12:33:55
154
原创 汉诺塔问题
这是一个经典的数学问题:古代有一个梵塔,塔内有3个座A,B,C,开始时A座上有64个盘子,盘子大小不等,大的在下,小的在上(见下图)。有一个老和尚想把这64个盘子从A座移到C座,但每次只允许移动一个盘,且在移动过程中在3个座上都始终保持大盘在下,小盘在上。在移动过程中可以利用B座,要求编程序打印出移动的步骤。#include <iostream>using namespace std;void move(int n, char x, char y){ cout <<
2021-12-01 11:09:04
853
1
原创 用函数实现十进制转二进制
输入一个十进制正整数n,输出其二进制例输入 100 输出 1100100#include <iostream>using namespace std;void d(int n){ int a[100]; int m = 0; while (n != 0) { //此题用到十进制转二进制的公式 a[m] = n % 2; //把余数都用数组存起来 n /= 2; m++; } fo...
2021-11-20 17:40:42
2565
原创 输入10个数字,然后逆序输出。
输入 1 2 3 4 5 6 7 8 9 0输出0 9 8 7 6 5 4 3 2 1#include <iostream>using namespace std;int main(){ int a[10]; for (int i = 0; i < 10; i++) { cin >> a[i]; } for (int j = 9; j >= 0; j--) { cout << a[j] << '..
2021-11-14 23:04:35
2821
原创 用选择法对10个整数从小到大排序
输入4 85 3 234 45 345 345 122 30 12输出3412304585122234345345#include <iostream>using namespace std;int main(){ int a[10]; int i,j,min,k=0,t,m=0; for(i=0;i<10;i++) {cin >> a[i];} for(i=..
2021-11-14 22:23:59
968
原创 C++逆序输出
输入一个数 如123.5 把他逆序输出出来 5.321#include<iostream>#include <string>using namespace std;int main(){ string a; cin >> a; for (int i = a.size() - 1; i >= 0; i--) { cout << a[i]; } system("pause"); return 0;}...
2021-11-14 17:15:08
3641
原创 字母密码转换
输入一行电报文字,将字母变成其下一字母(如’a’变成’b’……’z’变成’a’其它字符不变)。例子 输入 a b 、 , 输出 b c 、 , (最后一个字符后面没有空格)#include <iostream>#include <cstdio>using namespace std;int main(){ char c; while ((c = getchar()) != '\n') { if (c >=...
2021-11-12 20:10:49
1256
原创 分类统计字符个数
描述输入一行字符,分别统计出其中英文字母、数字、空格和其他字符的个数。例子 输入 aklsjflj123 sadf918u324 asdf91u32oasdf/.';123 输出 23 16 2 4 #include <iostream>using namespace std;int main(){ int zm=0, sz=0, kg=0, qt=0; //定义字母,数字,空格,其他字符 char c; while ((c = getcha..
2021-11-11 23:06:50
771
原创 迭代法求平方根
描述要求前后两次求出的x的差的绝对值小于10-5.保留4位小数,并输出迭代的次数。输入 2 输出1.4142 3#include <iostream>#include <cmath>#include <iomanip>using namespace std;int main(){ double a,x1,x2; int i = 0; //用i来表示迭代的次数 cin >> a; x1 = ...
2021-11-11 22:22:14
398
原创 求范围内的完数
描述一个数如果恰好等于它的因子之和,这个数就称为"完数"。 例如,6的因子为1、2、3,而6=1+2+3,因此6是"完数"。 编程序找出N之内的所有完数,并按下面格式输出其因子:6 its factors are 1 2 3 (行末有空格)输入 1000输出 6 its factors are 1 2 3 28 its factors are 1 2 4 7 14 496 its factors are 1 2 4 8 16 31 62 124 248 #include...
2021-11-11 20:48:28
169
原创 猴子吃桃问题
描述猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃一个。以后每天早上都吃了前一天剩下的一半零一个。到第N天早上想再吃时,见只剩下一个桃子了。求第一天共摘多少桃子。易错 根据倒数第二句话可得,当N=1的时候,摘得总数还是1个,所以要进行一个讨论#include <iostream>using namespace std;int main(){ int N, n = 1,s=0; cin >> N;..
2021-11-10 20:10:45
271
原创 判断一个数是否是素数
输入一个数,判断是否是素数例子 输入 5 输出 ture#include <iostream>using namespace std;int main(){ int m, a = 0; cin >> m; for (int i = 2; i < m; i++) { if (m % i == 0) { a++; } } if (a == 0) { cout << "ture" << ...
2021-11-09 23:07:07
213
原创 兔子繁衍问题
有一对兔子,从出生后第3个月起每个月都生一对兔子。小兔子长到第3个月后每个月又生一对兔子。假设所有兔子都不死,问第1个月出生的一队兔子,至少需要繁衍到第几个月时,兔子的总数才可以达到n对?例 输入 30 输出 9解析 兔子的繁衍其实是一个斐波那契数列问题#include <iostream>using namespace std;int main(){ double f1 = 1, f2 = 1; int n,month=2; cin...
2021-11-09 15:50:30
339
原创 输出图案三角形
输入一个数n,输出n行*号例 输入 4 输出 * *** ************#include <iostream>using namespace std;int main(){ int n; cin >> n; for (int i = 1; i <= n; i++) { for (int k = 1; k <= n - i; k++) { cout << " "; ...
2021-11-09 14:43:15
591
原创 输入三个数并比较它们的大小
输入三个数,并从小到大排列出来例#include <iostream>using namespace std;int main(){ int a, b, c,temp; cin >> a >> b >> c; if (a > b) { temp = a; //用一个临时之temp,把a的值赋给temp a = b; //把b的值赋给a b = temp; //再把temp的值赋给b,下面的同理
2021-11-07 22:11:16
376
1
原创 输出图案*
输入n表示n行#include <iostream>using namespace std;int main(){ int n; cin >> n; for (int i = 1; i <= (n + 1) / 2; i++) { for (int j = 1; j <= 2 * i - 1; j++) { cout << "*"; } cout << endl; } for (int k = .
2021-11-07 21:57:06
313
原创 逆序输出整数各位数字
描述给出一个不多于5位的整数,要求1、求出它是几位数,2、分别输出每一位数字,3、按逆序输出各位数字,例如原数为321,应输出123。#include <iostream>#include <cmath>using namespace std;int main(){ int n,i=1,m,n1,n2,n3,k; cin >> n; n1 = n; n2 = n; n3 = n; //将n1 n2 n3赋值成n while (n / 1
2021-11-07 16:09:48
1787
原创 1+1+2+1+2+3+.....数列求和
输入一个整数n,计算s=1+1+2+1+2+3+1+2+3+4+…+1+2+3+…+n。#include <iostream>using namespace std;int main (){ int n, s = 0,w=0; cin >> n; for (int i = 1; i <= n; i++) { for (int j = 1; j <= i; j++) { w += j; } s += w; w = 0;
2021-11-07 10:44:15
2707
原创 整数数列求和(含阶乘的数列)
求Sn=1!+2!+3!+4!+5!+…+n!之值,其中n是一个数字。#include <iostream>using namespace std;int main (){ long n, s = 1,sn=0; cin >> n; for (int i = 1; i <= n; i++) { s *= i; sn += s; } cout << sn << endl; return 0;}...
2021-11-07 10:26:36
696
原创 输入倒三角图形(最后一个后面没有空格)
输出如下倒三角图案。#include <iostream>using namespace std;int main(){ for (int i = 1; i <= 5; i++) //外循环是控制输出五行 { for (int j = 0; j < i - 1; j++) //控制每行输出的空格个数 { cout << " " ; } for (int k = 4; i<=k; k--) //输出
2021-11-07 09:55:00
268
原创 求整数各位数字之和
wenti:输入一个整数m,求其位数及各位数字之和。输入一个整数m输出整数m的位数及各位数字之和,用空格分隔。样例 输入 1234 输出 4 10#include <iostream>using namespace std;int main(){ int num=0,i=0; long long m; //定义一个long long类型的m cin >> m; if...
2021-11-02 22:24:26
1019
原创 用C++求最小值
问题:输入一个正整数n,然后输入n个整数,求最小值。输入第一行,一个正整数n第二行,n个整数输出n个数中的最小值。示例输入5 输出 -87 -2 -87 100 0 5 #include <iostream>using namespace std;int main(){ int n, m,x=0; //n是一共有几个数,m是第二行输入的数,x是后面用来比较的 cin >
2021-11-02 21:10:24
11289
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人