
算法
fuel030
详细代码关注置顶文章github自取
展开
-
蓝桥杯算法训练VIP-瓷砖铺放 (C++代码)
#include <iostream>#include <cstring>#include <algorithm>using namespace std;int res(int num){ if(num == 1){ return 1; } if(num == 2){ return 2; } return res(num-1)+res(num-2);}int main(){ in原创 2022-01-14 19:18:25 · 559 阅读 · 0 评论 -
算法训练 集合运算
#include <iostream>#include <cstring>#include <algorithm>using namespace std;int lena,lenb,a[1050],b[1050];void union_set(int a[],int b[],int lena,int lenb){ int tmp[2050],cnt=0; for (int i = 0; i < lena; i ++ ){原创 2022-01-14 14:16:27 · 198 阅读 · 0 评论 -
基础练习 Huffuman树
#include <iostream>#include <cstring>#include <algorithm>using namespace std;int huffmanTree(int a[],int n){ int sum = 0; //printf("n=%d\n",n); for (int i = 0; i < n - 1; i ++ ){//每次取最小两位相加,减小数组长度 sort(a+i,a+n);原创 2022-01-12 16:47:22 · 98 阅读 · 0 评论 -
基础练习 高精度加法
#include <iostream>#include <cstring>#include <algorithm>using namespace std;string BigNumAdd(string,int ,string,int);int main(){ string a,b; //scanf("%s%s", &a, &b); cin>>a>>b; if(a.size() < b原创 2022-01-12 11:03:49 · 90 阅读 · 0 评论 -
基础练习 阶乘计算
#include<stdio.h>int A[10010];int main(){ int n,count=1,f,temp; A[0]=1; scanf("%d",&n); for(int i=1;i<=n;i++) { f=0; //记录进位数 for(int j=0;j<count;j++) //每一位数乘i { te原创 2022-01-11 22:25:21 · 141 阅读 · 0 评论 -
基础练习 Sine之舞
#include <iostream>#include <cstring>#include <algorithm>using namespace std;void An(int n){ for (int i = 0; i < n; i ++ ){ printf("sin(%d",i+1); if(i%2 == 0 && i!= n-1){ printf("-");原创 2022-01-11 13:54:28 · 77 阅读 · 0 评论 -
[递归]母牛的故事
题目描述有一头母牛,它每年年初生一头小母牛。每头小母牛从第四个年头开始,每年年初也生一头小母牛。请编程实现在第n年的时候,共有多少头母牛?输入输入数据由多个测试实例组成,每个测试实例占一行,包括一个整数n(0<n<55),n的含义如题目中描述。n=0表示输入数据的结束,不做处理。输出对于每个测试实例,输出在第n年的时候母牛的数量。每个输出占一行。#include<stdio.h>int cow(int n ){ if(原创 2021-12-19 14:10:29 · 205 阅读 · 0 评论 -
2021-06-24全排序、升序排序、排序求次序
n个元素1,2,…、有n!个小同的排列,将这n!个排列按字典序排列,并编号为0,1,…,n!-1。每个排列的编号为其字典序值,例如,当n=3时,6个不同排列的字典序列如下123,132,213,231,312,321。给定n(每个同学要做的n等于你的学号后2位对5取模求余后加上5,就是自己写自己的n值)以及n个元素{1,2,…,n},的一个排列,计算出这个排列的字典序值,以及按字典序排列的下一个排列,如n输入8,输入26458173,输出:它对应的编号是8227,它的下一个序列是26458317.#inc原创 2021-06-24 09:48:24 · 129 阅读 · 0 评论 -
第k小/大问题/快速排序
#include <stdio.h>#include <stdlib.h>#include <string.h>#include <sys/time.h>void mod202120430();int num_rand(int start,int end)//return an number between[start,end){ return rand()% (end - start+1) + start;}int partitio原创 2021-06-21 16:45:33 · 130 阅读 · 0 评论 -
循环赛事日程表/分治法
//2d11 分治法,循环赛事日程表//#include <stdafx.h>#include <iostream> #include <math.h>using namespace std; void Table(int k,int n,int **a);void input(int &k);void output(int **a,int n); int main(){ int k; input(k); int n=1;.原创 2021-06-21 16:41:25 · 105 阅读 · 0 评论 -
2021-06-21归并排序
#include <stdlib.h>#include <stdio.h>#include <time.h>#define N 20void Merge(int a[], int p, int mid, int r){ int result[r-p+1]; int k; int i = p; int j = mid + 1; for(k=p;k<=r;k++) { result[k-p]=a[原创 2021-06-21 16:33:39 · 86 阅读 · 0 评论 -
2021-06-21 部分背包问题(非01背包)
#include <iostream>#include <algorithm>using namespace std;struct Goods //定义一个物品的信息结构体{ int weight;//物品的重量 int value;// 物品的价值 float P;// 权重=价值/重量 float N; //物品装入背包的部分,如果全部装入则为1,装入一半为0.5};bool compare (Goods &a,Goods &a原创 2021-06-21 16:31:52 · 170 阅读 · 0 评论 -
矩阵连乘 c语言
#include <iostream>#include <algorithm>#include <iomanip>using namespace std;#define MAX 0xfffffff#define N 100int n;int p[N];int s[N][N],dp[N][N]; //S存储切割位置,dp存储最优值void MatricChain(){ for(int i=0;i<n+1;i++)//赋初值原创 2021-06-21 16:29:21 · 599 阅读 · 0 评论 -
利用概率算法求解N皇后问题
#include <stdio.h>#include <stdlib.h>#include <time.h>#include <assert.h>#define MAX 500//利用概率算法求解八皇后问题int check_pos(const int r[MAX],const int i,const int j);void print_pos(const int r[MAX],const int n);int queen_lv(int r[M原创 2021-06-19 21:38:19 · 452 阅读 · 0 评论 -
[用回溯法解八皇后]2021-06-07
任务描述本关任务:假设已放了8个皇后的棋盘(在每列、每行上只有一个皇后,且一条斜线上也只有一个皇后)。用回溯法解8个皇后问题的全部解。编程要求定义函数Try(i),用来试探放第i行上的皇后。讨论将第i行上的皇后放在j列位置上的安全性,可以逐行地放每一个皇后,在做这一步时,第i行上还没有皇后,不会在行上遭到其他皇后的攻击。只考虑来自列和对角线的攻击。定义q(i)=j表示第i行上的皇后放在第j列,一旦这样做了,就要考虑第i个皇后所在的列不安全了,让C[j]=false,同时,要考虑通过(i,j)位置的两原创 2021-06-07 17:48:24 · 144 阅读 · 0 评论 -
实验二 动态规划算法
本关任务:给定N个物品和一个背包,背包的容量为W, 假设背包容量范围在[0,15],第i个物品对应的体积和价值分别为W[i]和v[i]。各种物品的价值和重量如下:物品编号 1 2 3 4 5重量W 3 4 7 8 9价值V 4 5 10 11 13求: 如何选择装入背包的物品,使得装入背包的物品的总价值为最大。相关知识为了完成本关任务,你需要掌握:1.动态规划原理的方法;2.0/1背包问题。/*本关任务:给定N个物品和一个背包,背包的容量为W, 假设背包容量范围在[0,原创 2021-06-07 17:31:09 · 713 阅读 · 1 评论 -
实验一 递归与分治
本关任务:随机生成20个从1-100之间的随机数,用递归与分治法编程实现元素的查找算法。为了完成本关任务,你需要掌握:1、需排序的数据要求随机生成。2、排序算法要求采用归并或选择排序算法。## 3、用递归与分治法编程实现元素的查找算法。平台会对你编写的代码进行测试:测试输入:2 1 4 6 3 5 7 8 9 10 5预期输出:1 2 3 4 5 6 7 8 9 10 5#include <stdlib.h>#include <stdio.h>#include原创 2021-06-07 17:29:33 · 932 阅读 · 0 评论 -
实验三 贪心方法原理 普里姆(Prim)算法求解最小生成树
普里姆(Prim)算法求解最小生成树//实验三 贪心方法原理#include <stdio.h>#ifndef C_DS_MST_H#define C_DS_MST_H#endif //C_DS_MST_Htypedef char VertexType; //自定义顶点类型typedef int EdgeType; //自定义边上的权值类型#define MAXVEX 100 //最大顶点树#define INFINITY 65525 //用65525代表infinityt转载 2021-06-07 17:14:58 · 368 阅读 · 0 评论