算法与数据结构
算法与数据结构
G_Meteor
AKK
展开
-
108. 虚数 //set跟priority_queue的使用及重载运算符
时间限制1000 ms内存限制65536 KB题目描述给你一个复数集合{Aj+i*Bj},保证Aj和Bj都是整数,初始为空集。每次会给你如下两种操作中的一种:1."Insert x+iy",其中x,y都是整数。表示在集合中加入一个复数x+iy,同时输出此时集合的大小;2."Pop"。如果集合为空集直接返回“Empty!”,如果有元素则以"x+...原创 2020-01-11 23:22:37 · 318 阅读 · 0 评论 -
快速排序及改进
#include<bits/stdc++.h>using namespace std;int Partition(int a[],int l,int r){ int k=a[l]; while(l<r) { while(l<r&&a[r]>=k)r--; a[l]=a[r]; while(l<r&&a[l...原创 2020-05-06 10:34:41 · 323 阅读 · 0 评论 -
二分查找及优化
#include<bits/stdc++.h>using namespace std;int Binary_Search(int a[],int n,int k)//常规二分 { int l=0,r=n-1,mid; while(l<=r) { mid=(l+r)/2; if(a[mid]==k)return mid; else if(a[mid]>...原创 2020-05-06 10:33:33 · 325 阅读 · 0 评论 -
归并排序
#include<bits/stdc++.h>using namespace std;void Merge(int a[],int l,int mid,int r){ int b[r+1],i,j,k; for(i=l;i<=r;++i) { b[i]=a[i]; } for(k=l,i=l,j=mid+1;i<=mid&&j<=...原创 2020-05-06 10:31:55 · 159 阅读 · 0 评论 -
深度优先搜索DFS总结
DFS不易混乱的敲码思路:int DFS(int x,int step,int n){ //进入DFS的该x状态是满足条件的即程序已经处于该X状态 //如果该x状态即最终要找的状态则结束并输出结果 //如果不是之后遍历该x状态之后的所有状态, //并DFS满足条件的下一种状态}王道机试指南第二版,例题9.3 A Knight's Journey...原创 2020-04-26 13:33:47 · 222 阅读 · 0 评论 -
最大公约数与最小公倍数问题
设两个整数为x和y,用辗转相除法求最大公约数和最小公倍数的算法如下:int gcd(int x,int y) //或者直接调用__gcd()函数{ int m=x,n=y; int r=m%n; while (r!=0) //直至可以整除 { m=n; //使除数n变为被除数m n=r; ...原创 2020-02-07 10:09:26 · 339 阅读 · 0 评论 -
动态规划适用问题特点
可利用动态规划求解问题的特点:△1、求一个问题的最优解 //重要特点2、整体问题的最优解依赖于各个子问题的最优解3、大问题可以分解为若干个小问题,这些小问题之间还有相互重叠的更小的子问题4、从大往小分析问题,从小往大求解问题。(因为子问题在求解大问题可能重复利用,为了避免重复计算子问题)...原创 2020-02-07 10:07:42 · 1671 阅读 · 0 评论 -
背包问题
void wanquan(int v,int w,int m) //完全背包{ for(int j=v;j<=m;j++) dp[j]=max(dp[j],dp[j-v]+w);}void zo(int v,int w,int m) //01背包{ //for(int i=M;i>0;--i)需要开二维时用到 for(int j=m;j&...原创 2020-02-07 10:25:48 · 184 阅读 · 0 评论