- 博客(24)
- 资源 (5)
- 收藏
- 关注
原创 湘潭大学 算法设计与分析实验 回溯 动态规划 贪心 模拟退火解决背包问题
【代码】湘潭大学 算法设计与分析实验 回溯 动态规划 贪心 模拟退火解决背包问题。
2023-12-12 09:39:54 832
原创 02-线性结构2 在一个数组中实现两个堆栈 (20 分)
本题要求在一个数组中实现两个堆栈。如果我们希望最大程度上节省空间,那肯定是将两个堆栈,一个从头,一个从尾开始最有效率。我将栈1视为从头开始的那个,所以栈顶的下标TOP1为-1,而TOP2为MaxSize。所以当S->Top2 - S->Top1 == 1时,数组就满了。然后入栈和出栈的操作与普通栈一样。Stack CreateStack( int MaxSize ){ Stack cache = (Stack)malloc(sizeof(struct SNode)
2022-04-13 15:42:58 729 5
原创 01-复杂度3 二分查找 (20 分)
本题要求实现二分查找算法。模板很好理解。Position BinarySearch( List L, ElementType X ){ int l = 1, r = L->Last; int mid; while(l < r - 1) //由于整数除法的局限性,只能将要找的数精确到2个数之间。 { mid = (l + r) / 2; if(L -> Data[mid] > X)
2022-04-13 15:35:18 194
原创 Problem H 1378 Blocks
2021年下学期《C语言程序设计》作业16-2019年下学期期末考试 Description Blocks 题目描述 给你一个n块积木,每个积木块都是立方体,现在把它们排列一排,成m列,要求每列上至少有1个积木,且从左到右,每列的积木数量呈严格单调下降。比如8块积木,排成3列,那么合法的安排方案为521或者431。请问n块积木按规则排成m有多少种不同的方案? 输入 第一行是一个整数T(1≤T≤1000),表示样例的个数。 以后每个样例占一
2021-12-29 19:04:41 561
原创 对于有符号整型int最小值的取值理解
需要声明的是,以下是我的猜测,但符合实验结论。基础知识:我们都知道,数字是带+ or -符号的。源码:用第一位表示正负,再用其余位表示绝对值。反码:符号位锁定,其余位由0变1,由1变0。相当于忽略源码符号位,用少于最高位的最大值减去源码的值。例如源码1 111 0101其反码为111 1111-111 0101=000 1010即111 1111=000 1010+111 0101补码:反码加1。于是1 111 0101的补码1 000 1011。于是理论最小值
2021-10-15 10:45:02 513
原创 Problem E 1270 Unique Digit Number
2021年下学期《C语言程序设计》作业6-数组2 Description 数位不同的数 题目描述 数位不同的数是指所有数位上的数码都不一样的数,比如“123”三个数码1,2,3,都不一样,所以是数位不同的数;但是“1232”中有两个相同的数码2,所以不是。请写一个程序,计算第几个符合条件的数是什么? 输入 每行输入一个整数n(1≤n≤8877691)。 输出 每行输出一个整数,为对应样例的结果。 我用的是深度优先算
2021-10-08 17:11:05 1699 3
原创 Problem G 1217 A+B VII
2021年下学期《C语言程序设计》作业10-2013年下学期期末考试 Description 题目描述 小明非常高兴你能帮他处理那些罗马数字,他想学着自己写罗马数字,但是他不知道自己到底写对了没有。 请你帮他写个程序,能正确地将10进制数字转换成罗马数字,以便他能进行核对。 罗马数字是使用字母组合表示数字的。不同的字母表示的值如下表: 字母 值 I 1 V 5 X 10 L
2021-09-29 12:41:58 292
原创 Problem E 1328 数码和
2021年下学期《C语言程序设计》作业8-函数2 Description 数码和 题目描述 一个10进制数n在2∼16进制下可以得到的不同的数码和,求在这些数码和中出现次数最多的数码和。 比如20, 进制2345678910111213141516数码10100202110403226242220191817161514数码和2424586421098765 其中数码和2和4分别出现了3次,为最多出现次数。 输入 第一行是一个整数T
2021-09-21 17:21:00 297
原创 Problem F 1376 回文数
2021年下学期《C语言程序设计》作业16-2019年下学期期末考试 Description 回文数 题目描述 回文数是指一个没有前导0的数,从左到右的数码和从右到左的数码是一样的。比如说10进制下的"121",这就是一个回文数。 我们将这个概念扩展到b进制,n=∑ki=0ai⋅bi,其中0≤ai<b,2≤b,ak>0,如果数列ak,ak−1,…,a0构成一个回文序列,那么就称n在b进制下是回文数。比如,5在2进制下是101(2),所以5在2
2021-09-20 10:24:44 349
原创 基于动态数组的使用高精度(模拟乘法)的阶乘求法
#include<stdio.h> //坑 #include<math.h> //坑#include<algorithm>#include<cstring>#include<vector>using namespace std;vector<int> v[1010];int main() { int n; scanf("%d", &n); v[0].push_back(1); .
2021-09-18 20:26:38 179
原创 Problem B 1263 矩形面积的并
2021年下学期《C语言程序设计》作业8-函数2矩形面积的并指的是,将两个矩形的面积求并集。也就是说,如果两个矩形不相交,那么它们的并就是面积之和。否则为面积和减去公共面积。要小心X1,X2,X3,X4之间的关系。#include<stdio.h> //坑 #include<math.h> //坑#include<algorithm>#include<cstring>using namespace std;int cm..
2021-09-12 09:16:33 1022
原创 NOIP模拟——平衡三进制的C++实现
#include<stdio.h> //坑 //#include<math.h> //坑 #include<algorithm>//#include<cstring>const int eps = 1e-6;using namespace std;int main(){ int nn; scanf("%d",&nn); while(nn--){ int n; scanf("%d",&n); bool z.
2021-09-09 09:11:28 565
原创 C/C++中,对于辗转相除法的理解
图片来源https://blog.csdn.net/qq_31828515/article/details/51812154重点讲解下图中的列子2。当将35对28取余的时候,就好比把35分成了28+7,即35=28+7。如果,7,这个多出来的顽固分子是28的倍数,那么肯定也是28+7=35的倍数。即7为35和28的最大公约数。附上递归代码。int gcd(int a,int b){if (a%b==0)return(b);elsereturn(gcd(b,a%b)).
2021-09-05 20:26:06 254
原创 Problem B 1055 整数分类
2021年下学期《C语言程序设计》作业4-循环结构2 Description 按照下面方法对整数x进行分类:如果x是一个个位数,则x属于x类;否则将x的各位上的数码累加,得到一个新的x,依次迭代,可以得到x的所属类。比如说24,2+4=6,则24的类别数是6;39,3+9=12,1+2=3,则39的类别数是3。 注意看输入位数多达500位,只能用字符数组来存。#include<stdio.h> //坑 #include<cs
2021-09-03 16:12:07 383
原创 Problem G 1189 Root
2021年下学期《C语言程序设计》作业4-循环结构2 Description 题目描述 求方程 (x+a)/(x+b) = c的非负整数根,其中a,b,c都是非负整数。 输入 第一行是一个整数K,表示样例的个数(K≤30000)。以后的K行每行为以一个样例,包含三个非负整数a,b,c (a,b,c ≤ 109)。 输出 每行输出一个样例的结果。如果方程没有根,输出“None”,否则输出根的值,如果存在多个根,输出最小的那个。
2021-09-02 16:07:12 192
原创 Problem B 1076 素数
素数2021年下学期《C语言程序设计》作业4-循环结构2 Description 对于大于1的自然数,如果n为素数,那么所有大于1且不大于n的平方根的自然数都不能整除n,反之亦然。所以我们可以通过测试来确定n是否为素数。现在给出n,要你求是否为素数,是输出Yes,否则输出No 每行一个正整数n,n<=2^32-1,如果n为0,则输入结束。判断n是否为素数 每行输出一个用例的结果,如果是输出"Yes",否则输出“No” 这里有两个坑人的地方。
2021-09-01 21:00:30 328
原创 C /C++语言中,「.」和「->」的区别
这是一个让新生一直很头疼的问题。#include <bits/stdc++.h>using namespace std;struct Node{ int value; bool valid; Node *left,*right; Node():value(0),left(NULL),right(NULL){};}*root;int main(){ Node root1; Node *root2; root2=new Node;}取决于实例化的对
2021-08-30 17:01:59 122
原创 PAT (Basic Level) Practice 1022 D进制的A+B
典型的进制转换题,需要用到辗转相除。辗转相除:一种用于十进制向其他进制转换的算法。原理:每次求余运算都能算出该十进制数转换成目标进制数的尚未确定的"最后一位"。例子:如将38转化为4进制。2*4^2+4^1+2=38=212(4进制) 对其取4的余数(2*4^2+4^1都是4的倍数)=2。得到倒数第一位。212(4进制)-2=210(4进制)。此时令(38-2)%4=9=(212-2)/4(4进制)=21(4进制)=2*4^1+1。#include <cstdio>#
2021-07-22 13:44:48 92
原创 PAT (Basic Level) Practice 1019 数字黑洞
用了小根堆和大根堆。#include <cstdio>#include <queue>#include <cmath>using namespace std;void vailable(int t){ priority_queue<int,vector<int>,greater<int> >q; priority_queue<int,vector<int>,less<int> >
2021-07-17 17:43:10 101
原创 PAT (Basic Level) Practice 1018 锤子剪刀布
利用地图将BCJ映射成123,同时将123映射成BCJ。解除int数组的下标不能为字母的限制。当然也可以用结构体来操作,会简单很多。#include <cstdio>#include <map>using namespace std;const int maxn=3210;map<char,short > mapStudent;//将BCJ变成123,然后用a,b数组分别存储两个选手赢时的出手类型。 //如a[1]=2表明1号选手出布的时候赢了两次。ma
2021-07-17 11:32:11 87
原创 PAT (Basic Level) Practice1017 A除以B
手动模拟除法运算就好了。可以自己先拿纸算一下。#include <cstdio>using namespace std;const int maxn=2021;int a[maxn],b[maxn];int len = 0;int d,remain;void divid(int t,int cache){ a[t]+=cache*10;//用cache处理上一位(或者几位)被除后的余数。乘10后加到本位上。 b[t]=a[t]/d; if(t==len-1...
2021-07-16 22:34:35 112
湘潭大学 算法设计与分析实验回溯 动态规划 贪心 模拟退火解决背包问题(含代码注释和实验报告)
2023-12-12
湘潭大学 高等数学下册 武奇(附课后习题详解)
2023-05-13
创业训练项目-WaterStream-demo
2022-02-20
1001~10000的阶乘表,科学计算用
2021-09-18
101~1000的阶乘表,科学查询用
2021-09-18
0~100的阶乘表,科学查询用
2021-09-18
常用ARM指令集及汇编.pdf
2021-08-30
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人