c++
文章平均质量分 62
antRain
这个作者很懒,什么都没留下…
展开
-
利用分治法求解大乘数
利用分治法求解大乘数简介参考简介给与两个比较大的数X和Y,且不能直接用基本类型表示,利用分治思想将X、Y分别拆分为A与B、C与D(长度不同可以补0)。X∗Y=(A∗10n2+B)(C∗10n2+D)=A∗C∗10n+A∗D∗10n2+B∗C∗10n2+B∗DX*Y = (A*10^\frac{n}{2}+B) (C*10^\frac{n}{2}+D) \\ = A*C*10^n + A*D*10^\frac{n}{2}+B*C*10^\frac{n}{2}+B*DX∗Y=(A∗102n+B)原创 2022-03-02 22:23:00 · 459 阅读 · 0 评论 -
spectre 记录
spectre 记录v1v1#include <stdint.h>#include <stdio.h>#include <stdlib.h>#ifdef _MSC_VER#include <intrin.h> /* for rdtscp and clflush */#pragma optimize("gt", on)#else#include <x86intrin.h> /* for rdtscp and clflush GC原创 2022-02-25 15:17:35 · 448 阅读 · 0 评论 -
c#导入项目后打开窗体设计界面
c#导入项目后打开窗体设计界面首先正确导入项目切换视图选择窗体设计界面首先正确导入项目需要包含.sln 文件切换视图选择窗体设计界面原创 2020-04-15 21:43:59 · 6743 阅读 · 2 评论 -
C# 利用websocket实现简易聊天功能——客户端
C# 利用websocket实现简易聊天功能——客户端前言界面界面设计代码源代码运行截图前言使用C#语言进行开发,基于.NET FrameWork4功能包含群聊,和私聊参考C# 利用websocket实现简易聊天功能——服务端界面界面设计代码namespace chat_client{ partial class Form1 { /// <...原创 2020-04-15 12:06:58 · 1228 阅读 · 2 评论 -
C# 利用websocket实现简易聊天功能——服务端
C# 利用websocket实现简易聊天功能——服务器前言界面界面设计代码源代码前言使用C#语言进行开发,基于.NET FrameWork4功能包含群聊,和私聊界面界面设计代码namespace chat_server{ partial class Form1 { /// <summary> /// 必需的设计器变量。...原创 2020-04-15 11:41:43 · 1398 阅读 · 0 评论 -
数组实现线性表带迭代器
数组实现线性表带迭代器源代码输出源代码#include<bits/stdc++.h>using namespace std;/** * @brief 非法参数异常类*/class illegalParameterValue { public: illegalParameterValue(string theMessage = "Illegal para...原创 2020-03-08 09:52:29 · 209 阅读 · 0 评论 -
公历转阴历算法
公历转阴历算法简述源代码简述阳历和阴历之间是不能换算的,二者采用的计算方法不同,没有特殊关系可以查询,只能分别计算。公历是阳历的一种,阳历就是以地球绕太阳公转的运动周期为基础而制定的历法。以耶稣诞生之年作为纪年的开始。阴历,又称太阴历,是以月球绕行地球一周为一个月,即以朔望月作为确定历月的基础的一种历法。源代码#include <bits/stdc++.h>using n...原创 2019-11-02 20:45:32 · 2658 阅读 · 2 评论 -
c++: 复数类
c++: 复数类输出#include<iostream>using namespace std;class complex{private: double real; double imaginary ;public: complex():real(0),imaginary(0){} complex(double x,double y):rea...原创 2019-10-31 20:58:03 · 1036 阅读 · 0 评论 -
图的连通性
图的连通性无向图:割点源代码无向图:边双连通分量有向图:强连通分量(SCC)无向图:割点前言在一个连通分量G中,对任意一个点s做DFS,能访问到所有点,产生一棵“深搜优先生成树”T。定理1:T的根结点s是割点,当且仅当s有2个或更多的子结点。定理2:T的非根结点u是割点,当且仅当u存在一个子结点v,v及其后代都没有回退边连回u的祖先源代码#include<bits/std...原创 2019-08-03 11:54:00 · 570 阅读 · 0 评论 -
矩阵快速幂
矩阵快速幂源代码参考博客源代码#include <bits/stdc++.h>using namespace std;const int n = 3;typedef long long ll;void matrixcopy(int a[][n],int b[][n]){ for(int i=0;i<n;i++) for(int j=0;j<n;j++...原创 2019-08-01 09:32:03 · 98 阅读 · 0 评论 -
LCS
LCSLCSLCS+滚动数组LCS 最长字串输出LCS#include<bits/stdc++.h>using namespace std;const int maxn = 1e2;/*LCS求解两个字符串的最长公共子序列状态转移方程:if(a[i]==b[j])dp[i][j]=dp[i-1]dp[j-1]+1;else dp[i][j]=max(dp[i-1][...原创 2019-08-01 12:59:07 · 134 阅读 · 0 评论 -
LIS
LIS通过LCS求解直接dpO(nlogn)优化通过LCS求解#include<bits/stdc++.h>using namespace std;const int maxn = 1e2;/*LIS求解最长递增子序列通过LCS的思想求解时间复杂度为O(n^2)*/int LIS(int a[],int n){ int b[maxn]; for(int i=...原创 2019-08-01 13:34:25 · 247 阅读 · 0 评论 -
字典树
字典树前言利用指针实现用数组实现前言介绍字典树又称单词查找树,Trie树,是一种树形结构,是一种哈希树的变种。典型应用是用于统计,排序和保存大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。它的优点是:利用字符串的公共前缀来减少查询时间,最大限度地减少无谓的字符串比较,查询效率比哈希树高。性质(1) 根节点不包含字符,除根节点外每一个节点都只包含一个字符;...原创 2019-08-01 14:17:58 · 161 阅读 · 0 评论 -
中国剩余定理
中国剩余定理#include<bits/stdc++.h>using namespace std;const int maxn = 1e2;typedef long long ll;/*中国剩余理论:*/ll gcd(ll a,ll b){ return a%b==0?b:gcd(b,a%b);}//利用辗转相除法求解最大公约数// 另外c++提供内置函数//...原创 2019-08-01 17:43:34 · 176 阅读 · 0 评论 -
有趣的问题
有趣的问题求两个数的和求1+2+...+n两个数相乘求两个数的和#include<bits/stdc++.h>using namespace std;/*写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。可以参考电子技术的全加法器利用位运算完成操作 */int add(int a,int b){ int c=0;//代表进位标志 int...原创 2019-08-01 18:35:18 · 131 阅读 · 0 评论 -
c++学习目录
c++学习目录数据结构算法标准库学习c++学习数据结构数据结构:单向链表数据结构:图数据结构:队列数据结构:栈数据结构:树数据结构:树状数组数据数据:并查集数据结构:字典树算法加快读取方式鸡尾酒排序快速幂与二分乘法搜索素数学习小结排序方法总结堆排序交换两个整数的三个方法拓扑排序最小生成树博弈论kmp单源最短路径AC自动机矩阵快速幂LI...原创 2019-08-08 20:10:59 · 303 阅读 · 0 评论 -
vector学习
vector学习Vector ConstructorVector CapacityVector AccessVector ModifiersVector Iterators:Vector Constructor#include<iostream>#include<vector>using namespace std;int main(){ vector&...原创 2019-08-11 17:03:43 · 122 阅读 · 0 评论 -
树的直径
树的直径前言源代码参考博客前言路径:一棵树上,任意两个节点之间最多有一条简单路径。我们用 dis(a,b)表示点a和点b的路径上经过的边数。称dis(a,b)为a、b两个节点间的距离。直径:一棵树上,最长的路径为树的直径。且树的直径可能不是唯一的。源代码/*求解树的直径,求树上的两点的最长路径,两遍(dfs,bfs),第一遍求解离根节点最远的点s,第二遍求离s最远的点y,(s,y)...原创 2019-08-29 20:26:09 · 164 阅读 · 0 评论 -
线段树
线段树线段树区间修改(加)+ 区间查询区间修改(加+乘)+区间查询静态区间第K小参考博客线段树线段树是一种二叉搜索树,与区间树相似,它将一个区间划分成一些单元区间,每个单元区间对应线段树中的一个叶结点。使用线段树可以快速的查找某一个节点在若干条线段中出现的次数,时间复杂度为O(logN)。而未优化的空间复杂度为2N,实际应用时一般还要开4N的数组以免越界,因此有时需要离散化让空间压缩。区间...原创 2019-08-31 14:47:51 · 138 阅读 · 0 评论 -
欧拉函数
欧拉函数前言求单个欧拉函数值线性求欧拉函数前言在数论,对正整数n,欧拉函数是小于或等于n的正整数中与n互质的数的数目在英文中用phi表示欧拉函数,在希腊字母中用ϕ\phiϕ表示定义:phi(1)=1通式:ϕ(x)=x∏i=1n(1−1pi)\phi(x)= x\prod_{i=1}^{n}(1-\frac{1}{p_{i}})ϕ(x)=x∏i=1n(1−pi1)其中p1, p2…...原创 2019-09-06 10:56:08 · 140 阅读 · 0 评论 -
快速幂与二分乘法
快速幂与二分乘法思想:二分法源代码快速幂(非递归)快速幂(递归)二分乘法思想:二分法源代码快速幂(非递归)ll quickmod(ll a,ll b ,ll mod){ ll ans =1; while(b){ if(b&1)ans=ans*a%mod; a = a*a%mod; b>>=1; } return ans;}快速幂(递归)ll...原创 2019-06-28 18:57:55 · 185 阅读 · 0 评论 -
最小生成树
最小生成树prim算法测试输入输出Kruskal算法测试输出prim算法#include<bits/stdc++.h>using namespace std;const int maxn = 1e2;const int INF = 1<<30;//表示无穷大,两个顶点不存在边int g[maxn][maxn];//利用邻接矩阵表示有权图int n;//表示顶点...原创 2019-07-17 16:56:53 · 99 阅读 · 0 评论 -
博弈论
博弈论巴什博弈尼姆博弈尼姆博弈巴什博弈问题类型: 只有一堆n个物品,两个人从轮流中取出(1~m)个,最后取光者得胜; bool Bash_Game(int n,int m)//是否先手有必赢策略 { return n%(m+1)!=0; }尼姆博弈问题类型:有N堆,每堆有Ni>0个石子,取任意的石子,最后取光者得胜;int f[i];//从1到n到记录每堆石子个数...原创 2019-07-17 15:54:43 · 119 阅读 · 0 评论 -
搜索
搜索线性搜索二分搜索STLmain输出结果线性搜索int linerSearch(int a[],int n,int key){ for(int i=0; i<n;i++) { if (a[i]==key)return i; } return -1;//未找到}二分搜索int binarySearch(int a[],int n,int key){ int low ...原创 2019-06-29 08:20:32 · 149 阅读 · 0 评论 -
素数学习小结
素数学习小结判断一个数是否是素数埃拉托斯特尼筛法在O(nloglogn)内筛选素数欧拉筛法在O(n)内筛选素数判断一个数是否是素数bool prime(int n){ if(n<=1)return false; for(int j=2;j*j<=n;j++){ if(n%j==0){ printf("%d\n",j); ...原创 2019-06-15 11:07:21 · 215 阅读 · 0 评论 -
交换两个整数的三个方法
交换两个整数的三个方法源代码输出结果源代码#include<iostream>using namespace std;void swap1(int &a,int&b){ int t = a; a = b; b = t;}void swap2(int &a,int &b){ a = a + b; b = a - b; a = a...原创 2019-07-13 17:24:55 · 923 阅读 · 0 评论 -
鸡尾酒排序
鸡尾酒排序思想源代码思想鸡尾酒排序,在一趟排序的过程中,选择出最小与最大的元素并放到其相应的位置。源代码#include <bits/stdc++.h>using namespace std;void Swap(int &a,int &b){ int c=a; a=b; b=c;}void cocktailSort(int a[],int n)...原创 2019-06-28 21:01:11 · 92 阅读 · 0 评论 -
数据结构:栈
数据结构:栈概念代码运行截图应用概念栈是允许在同一端进行插入和删除操作的特殊线性表。允许进行插入和删除操作的一端称为栈顶(top),另一端为栈底(bottom);栈底固定,而栈顶浮动;栈中元素个数为零时称为空栈。插入一般称为进栈(PUSH),删除则称为退栈(POP)。栈也称为后进先出表。代码#include<iostream>using namespace std;t...原创 2019-06-28 16:07:26 · 105 阅读 · 0 评论 -
数据结构:堆
数据结构:堆源代码输出结果源代码#include<iostream>using namespace std;template<class T>void Swap(T& a,T&b){ T temp = a; a = b; b = temp;}template<class T>class heap{ public: h...原创 2019-07-12 21:36:24 · 80 阅读 · 0 评论 -
堆排序
堆排序介绍源代码测试输出介绍是利用堆这种数据结构所设计的一种排序算法源代码#include<bits/stdc++.h>using namespace std;void Swap(int &a,int &b){ int temp = a; a = b; b = temp;}/*函数:对一个节点使其调整到堆的相应的位置上第一个参数:用数组表...原创 2019-07-12 17:10:52 · 99 阅读 · 0 评论 -
加快读取方式
加快读取方式方法一namespace io{ const int SIZE=1e7+10; char inbuff[SIZE]; char *l,*r; inline void init(){ l=inbuff,r=inbuff+fread(inbuff,1,SIZE,stdin); } inline char gc(){ ...原创 2019-07-03 11:01:43 · 97 阅读 · 0 评论 -
数据结构:队列
数据结构:队列源代码输出结果应用源代码#include <iostream>using namespace std;template<class T>class queue{ public: queue(int init=10){ Queue = new T[init]; maxlength = init; front = back = 0;...原创 2019-06-29 08:58:32 · 112 阅读 · 0 评论 -
数据结构:树
数据结构:树源代码输出结果注源代码#include<iostream>#include<queue>using namespace std;template<class T>class node{ public: T element; node<T> *leftnode,*rightnode; node(){ leftnod...原创 2019-06-29 21:25:52 · 120 阅读 · 0 评论 -
数据结构:图
数据结构:图源代码输出结果源代码#include<iostream>#include<queue>using namespace std;class graph{ public: graph(int point,int noEdge=0,bool flag=true){ //nodege 代表两点之间没有边的情况,等于0是无权图,等于无穷大时为有权图 ...原创 2019-06-30 13:22:01 · 137 阅读 · 0 评论 -
单源最短路径
单源最短路径普通版测试输入测试输出使用优先队列普通版#include<bits/stdc++.h>using namespace std;const int maxn = 1e2;const int INF = 1<<30;//表示无穷大,两个顶点不存在边int g[maxn][maxn];//利用邻接矩阵表示有权图int n;//表示顶点个数,从1开始编号...原创 2019-07-17 15:29:14 · 184 阅读 · 0 评论 -
拓扑排序
拓扑排序源代码测试1输入输出测试2输入输出源代码#include<bits/stdc++.h>using namespace std;const int maxn = 1e2;bool g[maxn][maxn]={false};//利用邻接矩阵表示无权有向图int n;//表示顶点个数,从1开始编号int top[maxn];//拓扑序列/*拓扑排序true:能...原创 2019-07-17 10:08:49 · 98 阅读 · 0 评论 -
c++标准库--cstdio学习
cstdio学习宏类型函数printf()scanf输出源代码宏EOF :表示已到达文件结尾或发出其他一些故障情况NULL:表示空指针类型FILE:包含控制流的信息的对象函数printf()int printf ( const char * format, … );标准输出流+ format形式:%[flags][width][.precision][length]sp...原创 2019-07-16 23:03:28 · 1650 阅读 · 0 评论 -
c++标准库--ctime学习
ctime学习宏类型:函数获取当地时间源代码输出结果计时源代码输出结果宏CLOCKS_PER_SEC:每秒时钟周期数的表达式。类型:clock_t:表示时钟滴答计数的类型。size_t:其中一个基本无符号整数类型的别名,是一种能够以字节为单位表示任何对象大小的类型time_t:表示时间的类型struct tm:包含日历日期和时间的结构体会员类型含义范围...原创 2019-07-16 21:48:57 · 702 阅读 · 0 评论 -
数据数据:并查集
数据数据:并查集# include<bits/stdc++.h>using namespace std;const int maxn = 1e2 +4;int c[maxn];void init(){ for(int i=0;i<maxn;i++)c[i]=i;}//递归版int find(int x){ return x==c[x]?x:c[x]=fin...原创 2019-07-16 20:09:19 · 116 阅读 · 0 评论 -
数据结构:树状数组
数据结构:树状数组单点修改,区间查询区间修改,单点查询区间修改,区间查询参考博客单点修改,区间查询# include<bits/stdc++.h>using namespace std;const int maxn = 1e2 +4;int c[maxn];int lowbit(int n){ return n&(-n);}int update(int x...原创 2019-07-16 18:57:21 · 118 阅读 · 0 评论