告别复杂代码:MusePublic Art Studio小白也能用的AI画室

核心内容摘要

Java计算机毕设之基于SpringBoot的社区帮扶邻里服务平台社区邻里服务平台设计与实现(完整前后端代码+说明文档+LW,调试定制等)
前后端分离宿舍维修管理系统系统|SpringBoot+Vue+MyBatis+MySQL完整源码+部署教程

8GB显存跑大模型!GLM-4-9B-Chat-1M量化部署全攻略

P1996 约瑟夫问题题目描述n 个人围成一圈从第一个人开始报数,数到 m 的人出列再由下一个人重新从 1 开始报数数到 m 的人再出圈依次类推直到所有的人都出圈请输出依次出圈人的编号。

注意本题和《深入浅出-基础篇》上例题的表述稍有不同。

书上表述是给出淘汰 n−1 名小朋友而该题是全部出圈。

输入格式输入两个整数 n,m。

输出格式输出一行 n 个整数按顺序输出每个出圈人的编号。

输入输出样例输入 #1复制10 3输出 #1复制3 6 9 2 7 1 8 5 10 4说明/提示1≤m,n≤100#includeiostream #includequeue using namespace std; int n,m; int main() { queue intq; cinnm; for(int i1;in;i) q.push(i); while(q.size()) { //把队头移到队尾 //类似循环队列 //注意是移动m-1次不是m次 for(int j1;jm;j) { int movq.front(); q.pop(); q.push(mov); } //淘汰队头 coutq.front() ; q.pop(); } return 0; }

B3616 【模板】队列题目描述请你实现一个队列queue支持如下操作push(x)向队列中加入一个数 x。

pop()将队首弹出。

如果此时队列为空则不进行弹出操作并输出ERR_CANNOT_POP。

query()输出队首元素。

如果此时队列为空则输出ERR_CANNOT_QUERY。

size()输出此时队列内元素个数。

输入格式第一行一个整数 n表示操作的次数。

接下来 n 行每行表示一个操作。

格式如下1 x表示将元素x加入队列。

2表示将队首弹出队列。

3表示查询队首。

4表示查询队列内元素个数。

输出格式输出若干行对于每个操作按「题目描述」输出结果。

每条输出之间应当用空行隔开。

输入输出样例输入 #1复制13 1 2 3 4 1 233 3 2 3 2 4 3 2 1 144 3输出 #1复制2 1 2 233 0 ERR_CANNOT_QUERY ERR_CANNOT_POP 144说明/提示样例解释首先插入2队首为

队列内元素个数为1。

插入233此时队首为2。

弹出队首此时队首为233。

弹出队首此时队首为空。

再次尝试弹出队首由于队列已经为空此时无法弹出。

插入144此时队首为144。

数据规模与约定对于 100% 的测试数据满足 n≤10000且被插入队列的所有元素值是 [1,1000000] 以内的正整数。

#includeiostream using namespace std; const int N1e510; int q[N]; int front,back,size; void Push(int x) { back; q[back]x; } int Size() { return back-front; } void Pop() { if(Size()

front; else coutERR_CANNOT_POPendl; } void Query() { if(Size()

coutq[front1]endl; else coutERR_CANNOT_QUERYendl; } int main() { int n; cinn; int input0; while(n--) { cininput; if(input

{ int x; cinx; Push(x); } else if(input

Pop(); else if(input

Query(); else if(input

coutSize()endl; } return 0; }

B3656 【模板】双端队列 1题目背景Aya 衷心祝愿大家不再因为std::deque重蹈覆辙。

题目描述请你实现 m 个双端队列支持如下的 q 次操作push_back(a,x)在第 a 个双端队列中从尾部插入一个元素 xpop_back(a)在第 a 个双端队列中从尾部弹出一个元素。

push_front(a,x)在第 a 个双端队列中从头部插入一个元素 xpop_front(a)在第 a 个双端队列中从头部弹出一个元素。

size(a)查询第 a 个双端队列的元素个数front(a)查询第 a 个双端队列的队首元素back(a)查询第 a 个双端队列的队尾元素对于pop_backpop_frontfront和back操作若当前双端队列为空则不进行直接跳过该次操作。

输入格式输入的第一行是一个正整数 q表示操作次数。

接下来 q 行每行先是一个字符串保证为push_back或者pop_back或者push_front或者pop_front或者size或者front或者back之一。

接下来是 1 或 2 个正整数分别表示 a 和 x。

输出格式对于每个size或者front或者back操作输出一行表示答案。

输入输出样例输入 #1复制10 pop_back 2 push_back 1 1 push_front 1 3 push_front 2 2 push_front 2 3 pop_back 1 size 1 push_back 2 3 back 1 front 1输出 #1复制1 3 3说明/提示【数据范围】子任务m≤q≤分值110101022000200020310510530410610640对于所有数据1≤m,q≤1061≤x≤109。

这一题得用链表写。

因为双向链表只用维护头尾指针而双端队列就算里面没有元素还是会预留空间。

我用动态数组套个双端队列即使用哈希表优化还是因为内存超限过不了。

#includevector #includedeque #includelist #includecstring #includeunordered_map #includeiostream using namespace std; const int N 1e4 10; unordered_map int, listint dq; int main() { int q; cin q; string s; int x; int a; while (q--) { cin s; cin a; if (s push_back) { cin x; dq[a].push_back(x); } else if (s push_front) { cin x; dq[a].push_front(x); } else if (s pop_back) { if (dq[a].size()

dq[a].pop_back(); } else if (s pop_front) { if (dq[a].size()

dq[a].pop_front(); } else if (s size) { cout dq[a].size() endl; } else if (s front) { if (dq[a].size()

continue; else cout dq[a].front() endl; } else if (s back) { if (dq[a].size()

continue; else cout dq[a].back() endl; } } return 0; }

P1044 [NOIP 2003 普及组] 栈题目背景栈是计算机中经典的数据结构简单的说栈就是限制在一端进行插入删除操作的线性表。

栈有两种最重要的操作即 pop从栈顶弹出一个元素和 push将一个元素进栈。

栈的重要性不言自明任何一门数据结构的课程都会介绍栈。

宁宁同学在复习栈的基本概念时想到了一个书上没有讲过的问题而他自己无法给出答案所以需要你的帮忙。

题目描述宁宁考虑的是这样一个问题一个操作数序列1,2,…,n图示为 1 到 3 的情况栈 A 的深度大于 n。

现在可以进行两种操作将一个数从操作数序列的头端移到栈的头端对应数据结构栈的 push 操作将一个数从栈的头端移到输出序列的尾端对应数据结构栈的 pop 操作使用这两种操作由一个操作数序列就可以得到一系列的输出序列下图所示为由1 2 3生成序列2 3 1的过程。

原始状态如上图所示你的程序将对给定的 n计算并输出由操作数序列 1,2,…,n 经过操作可能得到的输出序列的总数。

输入格式输入文件只含一个整数 n1≤n≤18。

输出格式输出文件只有一行即可能输出序列的总数目。

输入输出样例输入 #1复制3输出 #1复制5说明/提示【题目来源】NOIP 2003 普及组第三题这一题用卡特兰数做。

需要结合组合数。

#includeiostream using namespace std; typedef unsigned long long LL; LL c[50][50]; LL calc(int n) { //组合数 for (int i 0;i 2 * n;i) { c[i][0] 1; c[i][i] 1; } for (int i 1;i 2*n;i) { for (int j 1;j i;j) c[i][j] c[i - 1][j] c[i - 1][j - 1]; } //卡特兰数 return c[n * 2][n] - c[2 * n][n - 1]; } int main() { int n; cin n; cout calc(n) endl; return 0; }

九.幺免费版-九.幺免费版应用

百度百家号客服电话人工服务

123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123