(是时候为五一培训准备真正的技术了qwq)
- part1 队列(FIFO)
- 算法简介:
FIFO:First In First Out(先进先出)
队列是限定在一端进行插入,另一端进行删除的特殊线性表。
允许出队的一头叫做队头(head||front),允许出队的一端称为队尾(rear||tail)所有需要进队的数据项,只能从队尾进入,队列中的数据只能从队头离去qwq。
-
- 例题【洛谷p1996约瑟夫问题】(粉粉嫩嫩的好看qwq
#include<iostream> #include<cstdio> #include<algorithm> #include<cstring> #include<cmath> using namespace std; int n,m,p=0,k=1; int a[200]; int main() { scanf("%d%d",&n,&m); int j=n; for(int i=1;i<n;i++)a[i]=i+1; a[n]=1; while(p<n){ while(k<m){ printf("%d a w i k o z i %d\n",j,a[j]); j=a[j];k++;//为了方便理解,这里加了两句输出 printf("%d a y i k o y i %d\n",j,a[j]); puts("-------------------"); } printf("我是答案qwq:%d\n",a[j]);p++; a[j]=a[a[j]];k=1; } return 0; }
- part2 bfs(广度优先搜索):
- 算法描述qwq