#include bits/stdc++.h using namespace std; int jz=257; long long m=10000000000007; int geths(char c){ return c-'a'+1; } vectorlong long getqzhs(string s){ vectorlong long v(s.size()+1,0); for(int i=1;i=s.size();i++) v[i]=(v[i-1]*jz+geths(s
点我呐
一对一:链表 一对多:树 多对多:图 图中的点:顶点 图中点与点连接的线:边 一个顶点周围连接着多少边叫做度 一个图包含多少个顶点叫做图的阶 一个五阶图,表示这个图包含5个
点我呐
输入n 输入n个数字 利用堆排序从大到小输出结果 堆排序:构成堆,堆顶堆尾交换位置排序 大顶堆:从小到大堆排序 小顶堆:从大到小堆排序 put(int x){ if(左子不存在) return ; int k=左;
点我呐
车厢调度1357改版 输入车厢数量,a站进站顺序,以及b站出站顺序 输出能否按照b要求的顺序输出,yes或no 输入: 5 1 2 3 4 5 5 4 3 2 1 输出: yes //车厢调度问题 int a[10050],b[10050],c[10050]; int
点我呐
小鱼比可爱 分析出双重循环的三角阵 i j 0 - 1 0 2 1 0 3 2 1 0 4 3 2 1 0 5 4 3 2 1 0 根据i和j的关系,写出双重循环代码 for(int i=0;i6;i++){ for(int j=i-1;j=0;j--){ } } 根据题目逻辑添加具体内容 for(int
点我呐
/*约瑟夫环确定队列的长度N通过M进行淘汰时,淘汰-出队,没淘汰-先出队,再入队*/#include iostream#include queueusing namespace std;queueint q;//创建一个约瑟夫队列int main(){ int N=6,M=5; for(int i=1;i=
点我呐
#include iostream using namespace std; int L,N,M; int d[50050]={0}; bool pd(int mid){ int cnt=0; int s=0; for(int i=1;i=N+1;i++){ if(d[i]-smid)cnt++; else s=d[i]; } return cnt=M; } int main() { cinLNM; for(int i=1;i=N;i++) cind[i]; d[N+1]=L
点我呐
时空复杂度 时间复杂度用T=O(n) 类似于 y=f(x) n代表数据数量 O代表时间复杂度函数 时间复杂度指当数据量为n时,基本代码的执行次数 基本代码:通常指循环最内部的代码块 时空复杂度
点我呐
/* 快速排序(从小到大) 6 7 3 2 5 8 1 9 4 t i- -j 1、找标兵(基准元素),通常找第一个元素,作为基准元素,基准元素的值会对算法速度有一定的影响 2、找哨兵*2,分别记录左右两端 3、先
点我呐
#include bits/stdc++.h using namespace std ; int base = 4 ; //进位 int mod = 1000000007 ; //最大的数字 int getcharhs ( char c ){ return c - 'a' + 1 ; } //获取一个字符串的所有前缀哈希值 vector long long getqz ( string s
点我呐