- 博客(14)
- 收藏
- 关注
原创 深搜n皇后
#include <iostream>using namespace std;char q[10][10];bool row[20],col[20],dg[20],udg[20];int n;void dfs(int x,int y,int s){ if(y==n) { y=0; x++; } ...
2020-04-27 08:59:03 132
原创 堆模拟
输入N个整数;“I x”,插入一个数x;“PM”,输出当前集合中的最小值;“DM”,删除当前集合中的最小值(数据保证此时的最小值唯一);“D k”,删除第k个插入的数;“C k x”,修改第k个插入的数,将其变为x;#include <iostream>#include <algorithm>#include <string.h>using n...
2020-04-27 08:52:52 205
原创 堆排序
输入一个长度为n的整数数列,从小到大输出前m小的数#include<iostream>#include<algorithm>using namespace std;const int N=1e5+10;int heap[N],m,n,siz;void down(int x){ int t=x; if(2*x<=siz&...
2020-04-27 08:48:54 136
原创 筛选质数
给定一个正整数n,求出1~n中质数的个数#include <iostream>using namespace std;const int N=1e6+10;int n,cnt=0;int prime[N];bool st[N];int get(int n){ if(n==1) return 0; for(int i=2;i<=n;i++) ...
2020-04-26 10:23:34 314
原创 分解质因数
按照质因数从小到大的顺序输出每个质因数的底数和指数#include <iostream>using namespace std;void div(int n){ for(int i=2;i<=n/i;i++) { if(n%i==0) { int s=0; while(n%i...
2020-04-26 10:21:45 121
原创 并查集
#include <iostream>using namespace std;const int N=1e5+10;int q[N],n,m;int find (int x){ if(x!=q[x])q[x]=find(q[x]); return q[x];}int main(){ cin>>n>>m; f...
2020-04-26 10:06:45 117
原创 大整数+-*/
大整数加减乘除解决了大于1e9的整数的加减乘除运算问题核心思想是用字符串读入数字,用vector容器进行运算 可以计算1e9以上的两个整数加减 可以计算一个1e9以上整数和一个int的乘法 可以计算一个1e9以上整数除以一个int的除法读入:for (int i = obj.a.size() - 1; i >= 0; i--) { obj.A.push_back(obj...
2020-04-26 08:45:20 202
原创 栈和队列
栈const int N=1e5;int q[N],t=0;基本功能1、添加(push)void push (int x){ q[++t]=x;}2、查询栈顶元素(query)void query(){ printf("%d",q[t]);}3、弹出栈顶元素(pop)void pop(){ t--;}4、是否为空(empty)bool empty(){ ...
2020-03-02 19:30:38 84
原创 KMP字符串
KMP字符串字符串匹配暴力做法char p[n],q[m];for(int i=0;i<n;i++){ bool flag = true; for(int j=0;j<m;j++) { if(p[i+j-1]!=q[j]) flag = false; break; } if (flag) balabalabala.......}...
2020-02-29 23:06:20 205
原创 数组模拟链表
一个链表需要实现的功能:插入,修改,删除#include <iostream>using namespace std;const int N=1e6;int e[N]; //e[i]表示第i个插入的值是e[i]int ne[N]; //表示第i+1个插入的值的位置int idx; //idx记录当前是第几个插入的数int head;单向链表初始化:void ini...
2020-02-23 20:59:30 149
原创 二分检索
二分检索1、整数cheak函数检验x是否满足某种条件bool cheak(int x);模板1:int search( int l,int r){ while (l<r) { int mid=l+r>>1;//从中间一份为二 if(cheak(mid)) r=mid; }}...
2020-02-22 17:29:33 170
原创 快速排序(递归,归并)
快速排序#include <iostream>using namespace std;const int N=1e5;int q[N],n; //待排序数组int main(){ cin>>n; for(int i=0 ;i<n ;i++) cin>>q[i]; quick_sort(q,0,n-1); return 0;}一...
2020-02-21 16:36:03 256
原创 求素数
筛质数(打印素数表)#include <iostream>using namespace std;const int N=1e5;int n;int prime[N] //存质数bool st[N] //存状态1、朴素做法(O(nlog(n)))每找到一个质数,筛去该质数的所有倍数会有很多重复void get_prime(int n){ fo...
2020-02-19 14:22:46 99
原创 dijkstra算法
dijkstra原始版 h2o#include<iostream>#include<cstring>#include<algorithm>const int N=510;int dista[N][N]; //用邻接矩阵存点与点间的距离int dist[N] //存点到第一个点间的距离bool st[N] //判是...
2020-02-15 18:48:49 218
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人