c++笔记
c/c++笔记
VGtime
github peterroe
展开
-
简单排序(冒泡、插入、希尔)
冒泡排序冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小、首字母从Z到A)错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端(升序或降序排列),就如同碳酸饮料中二氧化碳的气泡最终会上浮到顶端一样,故名“冒泡排序”。例如:核心代码:void bubblesort(int *a,原创 2020-06-11 19:02:50 · 523 阅读 · 0 评论 -
Windows命令行中文显示乱码问题
有时候在使用Windows的cmd命令提示符的时候出现中文显示乱码的问题,这个问题是由于命令行窗口的字符集不知道被什么程序修改了。如果要显示正确,可以使用chcp命令来实现。如下:chcp 936 设置成GBK (一般我们设置成这一项就可以显示中文了)chcp 65001 设置UTF-8代码页chcp 437 设置成美国英语原文链接:https://blog.csdn.net/kongxx/article/details/64122093...转载 2020-06-04 10:41:57 · 540 阅读 · 0 评论 -
任意进制转换
输入格式共三行,第一行是一个正整数,表示需要转换的数的进制n(2≤n≤16),第二行是一个n进制数,若n>10则用大写字母A−F表示数码10−15,并且该n进制数对应的十进制的值不超过1000000000,第三行也是一个正整数,表示转换之后的数的进制m(2≤m≤16)。输出格式一个正整数,表示转换之后的m进制数。输入输出样例输入16FF2输出11111111采用先转10进制作为媒介转代码如下:#include <stdio.h>#include <st原创 2020-06-01 11:09:25 · 903 阅读 · 0 评论 -
快速幂模板
题目描述给你三个整数 b,p,kb,p,k,求 b^p \bmod kbpmodk。输入格式输入只有一行三个整数,分别代表 b,p,kb,p,k输出格式输出一行一个字符串 b^p mod k=s,其中 b, p, k分别为题目给定的值, s 为运算结果。输入输出样例输入2 10 9输出2^10 mod 9=7说明/提示样例输入输出 1 解释2^10 =1024,1024mod9=7。数据规模与约定对于100% 的数据,0≤b,p< 2^31,1≤k≤2 ^31让转载 2020-06-01 10:05:18 · 300 阅读 · 0 评论 -
高精度乘法
#include<iostream>#include<cstring>#include<cstdio>#include<algorithm>using namespace std;char a1[10001],b1[10001];int a[10001],b[10001],i,x,len,j,c[10001];int main (){ cin>>a1>>b1;//不解释,不懂看前面 int lena=st转载 2020-05-25 14:24:47 · 157 阅读 · 0 评论 -
二进制与递归的运用
题目描述任何一个正整数都可以用 2 的幂次方表示。例如 137=2^7+2 ^3+2 ^0同时约定方次用括号来表示,即 a^b 可表示为 a(b)。由此可知,137 可表示为 2(7)+2(3)+2(0)2(7)+2(3)+2(0)所以最后 137 可表示为2(2(2)+2+2(0))+2(2+2(0))+2(0)。所以 1315 最后可表示为 2(2(2+2(0))+2)+2(2(2+2(0)))+2(2(2)+2(0))+2+2(0)。#include<iostream>#i转载 2020-05-15 11:33:07 · 237 阅读 · 0 评论 -
阶乘之和
题目描述用高精度计算出S=1!+2!+3!+…+n! (n≤50)其中“!”表示阶乘,例如:5!=5×4×3×2×1。#include<iostream>#include<bits/stdc++.h>using namespace std;int a[2000];int b[2000];int c[2000];int sum[2000];void pplus(int *a,int *c){ int jw=0; for(int i=1;i<=1000;i转载 2020-05-15 10:38:30 · 420 阅读 · 0 评论 -
高精度加法
输入:输入两个整数输出:输出两个数的和样例输入:222222222222222222222222222222222222222222333333333333333333333333333333样例输出:222222222222555555555555555555555555555555代码如下:#include<stdio.h>#include<string...原创 2020-04-22 19:41:44 · 225 阅读 · 0 评论 -
最大公约数和最小公倍数(简洁代码)
#include<iostream>using namespace std;int gcd(int a,int b){ while(a%b) { int z=a%b; a=b; b=z; } return b;}int main(){ int a,b; cin >> a>>b; cout<<gcd(a,b); r原创 2020-05-13 22:35:47 · 967 阅读 · 0 评论 -
高精度阶乘(简洁代码)
#include<iostream>using namespace std;int main(){ int a[10000],i,j,l=0,s,n; cin >> n; a[0]=1; for(int i=1;i<=n;i++) { s=0; for(int j=0;j<=l;j++)原创 2020-05-13 22:09:53 · 2092 阅读 · 2 评论 -
树的重心
树的重心的定义:树若以某点为根,使得该树最大子树的结点数最小,那么这个点则为该树的重心,一棵树可能有多个重心。树的重心的性质:1、树上所有的点到树的重心的距离之和是最短的,如果有多个重心,那么总距离相等。2、插入或删除一个点,树的重心的位置最多移动一个单位。3、若添加一条边连接2棵树,那么新树的重心一定在原来两棵树的重心的路径上。当然,这题我们只需要用到第一条性质。怎么求树的重心:定义几个数组:f[u]表示以u为根的总距离,size[u]表示以u为根的子树的大小(结点数,此题每个点要乘以权值转载 2020-05-11 17:02:24 · 808 阅读 · 0 评论 -
关于c/c++的const,值得你一看
定义一个常量1.定义一个常量const double PI=3.1415926;之后便可使用PI代替对应的数字,而且不能修改PI的值,这也意味着在定义const常量的时候必须初始化,像如下的操作就是错误的const double PI;PI=3.1415926;//invalid!const与指针1.常量指针int a=5;const int *p1=&a;int ...原创 2020-04-24 11:43:55 · 388 阅读 · 0 评论