![](https://img-blog.csdnimg.cn/2019091813595558.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
王道机试指南学习
自学
琉璃色的星辉
这个作者很懒,什么都没留下…
展开
-
C/C++ 高精度整数模板
const int MAXN = 10000;struct BigInteger { int digit[MAXN]; int length; BigInteger(); BigInteger(int x); BigInteger(string str); BigInteger(const BigInteger& b); BigInteger operator=(int x); BigInteger operator=(string str); BigInteger oper原创 2021-04-11 17:12:12 · 139 阅读 · 0 评论 -
并查集
一、查找根结点递归查找结点x所在树根结点:int Tree[N];int findRoot(int x) { if (Tree[x] == -1) return x; else return findRoot(Tree[x]);}非递归查找结点x所在树根结点:int Tree[N];int findRoot(int x) { int ret; while (Tree[x] != -1) x = Tree[x]; ret = x; return ret;}递归查找结点x所原创 2021-01-30 19:04:18 · 51 阅读 · 0 评论 -
C++ 由前序和中序重建二叉树
struct Node { //树节点结构体 Node* lchild; Node* rchild; int val;}Tree[50]; //静态内存分配数组int loc; //数组中已分配节点个数Node* creat() { //申请一个节点空间 Tree[loc].lchild = Tree[loc].rchild = NULL; return &Tree[loc++]; //返回指针且loc增加}int str1[30], str2[30];原创 2021-01-27 14:14:29 · 251 阅读 · 0 评论 -
二分求幂 A的B次方
一、方法将a的b次转换为若干个a的2^k次的积,并尽可能减少分解结果的个数,即求b的二进制数,再对对应为1的位进行累乘得到结果。因为求幂结果可能很大,所以要根据情况调整结果的类型。二、代码 int a, b; int ans = 1; //保存最终结果,初值为1 cin >> a >> b; while (b != 0) { //b不为0,即对b转换二进制未结束 if (b % 2 == 1) { //当前位为1,需要累成a的2^k次至ans,2^k为当前位权重原创 2021-01-26 11:40:37 · 179 阅读 · 0 评论 -
筛选一定范围内素数 c/c++模板
代码如下#define MAX 10000int prime[MAX]; //保存筛得的素数int primeSize; //保存素数的个数bool mark[MAX + 1]; //若mark[x]为true,则表示该数x已被标记成非素数void init() { for (int i = 0; i <= MAX; i++) { //初始化,所有数字都没被标记 mark[i] = false; } primeSize = 0; //得到素数个数原创 2021-01-25 12:22:55 · 148 阅读 · 0 评论 -
C++ sort 排序简单用法
降序排列如下:#include <iostream>#include <algorithm>using namespace std;bool cmp(int x, int y);int main() { int n; int data[100]; while (cin>>n) { for (int i = 0; i < n; i++) cin >> data[i]; sort(data, data + n, cmp);原创 2021-01-16 11:20:30 · 841 阅读 · 0 评论