双向队列 int q[1000],r1=0,f1=0,r2=0,f2=0; 循环队列:手写队列时,约瑟夫问题,使用的内存较大 int q[1000],r=0,f=0,maxnum=20; 入队 q[r++]=x; if(r=maxnum) r=0; 出队 f++; if(f=maxnum) f=0; 入队 q[r++%=maxnum]=x; 出
点我呐
递归-记忆化 递归:规律,结束条件 f(n)=2*f(n-1)+f(n-2) n=1 f(1)=1 n=2 f(2)=2 int f(int n){ if(n=2) return n; return (2*f(n-1)+f(n-2))%32767; } int main(){ int n,k; cinn; while(n--){ cink; coutf(k)endl; } return 0; } 初步记忆
点我呐
#include iostream #include set using namespace std ; int main () { //set类型 名; set int s; //输入n,输入n个数字,输出:去重后从小到大的数据 int n; cin n; int a; for ( int i = 0 ;i n;i ++ ){ cin a; s . insert (a); } /
点我呐
递归优化: int fei ( int n ){ if (n 2 ) return 1 ; return fei (n - 1 ) + fei (n - 2 ); } //时间复杂度:O(2^n) //记忆化:求过的就直接用 int nz [ 1000000 ] = { 1 , 1 }; int fei ( int n ){ if ( nz [n] != 0 ) return nz [n]
点我呐
数据类型 有明确的区分 数据结构 将一些数据组合在一起形成的结构 1 、数组 2 、栈: 1 、当成有特殊规则的数组 int sta [ 100 ]; 2 、特点:一头封死,叫栈底,一头开放,叫栈顶 int bo
点我呐
/* 高精度乘法: 1、字符串存储 2、倒序 3、换成数字进行计算(数字乘法,积的长度=因数的长度和) 4、双重循环遍历两个大数字 计算过程需要进位 计算过程需要累加 计算过程需要定位
点我呐
6月2级题 1、编译:将高级语言编程计算机可识别的二进制语言 3、char 1字节 int 4字节 char c='a';//97 int a=c; couta;//97 4、 二义性:程序的含义不唯一 缩进在c++中不重要 7、 int类型可以与do
点我呐
1、求一个字符串的所有前缀的哈希值 2、求一个字符串的所有后缀的哈希值(进制计算错误,取模错误) 3、求一个字符串的哈希值 作业优先:1456,其次1455 下节课内容 4、求一个片段
点我呐
C++程序框架 ● 需要掌握的头文件 #include iostream //输入输出 cout cin #include cstdio //输入输出 printf scanf #include iomanip //限制输出格式 小数位 占列宽 #include cmath //数学公式 #include cstdlib //随机
点我呐
#include bits/stdc++.h using namespace std; //kmp算法 //构建next数组 vectorint getNext(string s){ vectorint nt(s.size()+1,0); int i=0,j=-1; nt[i]=j; while(i=s.size()){ if(j==-1||s[i]==s[j]) nt[++i]=++j; else j=nt[j]; } return nt; } //
点我呐