您现在的位置是:主页 > news > c 网站开发/手机如何建立网站

c 网站开发/手机如何建立网站

admin2025/5/13 22:48:51news

简介c 网站开发,手机如何建立网站,网站建设一般一年多少费用,5173游戏交易网站源码题意: CLJ找了很多妹子… (题目好没节操…) 对于CLJ和妹子的聊天对话框 有一下几种操作: add 加一个妹子在聊天窗队列末尾 假设这个妹子已经在队列中则add失败 close 关掉某个妹子的聊天窗体 假设没有这个妹子的对话框则cl…

c 网站开发,手机如何建立网站,网站建设一般一年多少费用,5173游戏交易网站源码题意: CLJ找了很多妹子… (题目好没节操…) 对于CLJ和妹子的聊天对话框 有一下几种操作: add 加一个妹子在聊天窗队列末尾 假设这个妹子已经在队列中则add失败 close 关掉某个妹子的聊天窗体 假设没有这个妹子的对话框则cl…

题意:

CLJ找了很多妹子…  (题目好没节操…)  对于CLJ和妹子的聊天对话框  有一下几种操作:

add  加一个妹子在聊天窗队列末尾  假设这个妹子已经在队列中则add失败

close  关掉某个妹子的聊天窗体  假设没有这个妹子的对话框则close失败  假设成功要输出和这个妹子说过几个词

chat  和最前面妹子说一些话  假设没有窗体打开则chat失败

rotate  将某个妹子移到最前面  假设寻找妹子时发现超出队列范围则rotate失败

prior  将优先级最高妹子移到最前面  假设没有对话框则prior失败

choose  选择某个妹子移到最前面  假设该妹子不在队列则choose失败

top  选择某个妹子将她的状态变为总在最前  假设妹子不在队列则top失败  假设以前有总在最前的妹子  则代替之

untop  撤销总在最前状态  假设没人总在最前则untop失败

最后依照队列顺序  与每个以前说过话的妹子道别

思路:

模拟题…  写写写…

总在最前是一种状态  要理解  它并不直接改变队伍形状

即  第三个妹子被top  再被untop  这时这个妹子依旧站在第三个位置上

注意几个坑点:

close时候可能关掉的是总在最前的妹子的对话框  这时总在最前也同一时候消失

chat要用__int64存储每一个妹子对话过几个词

最后道别时候应该先于总在最前的妹子道别

代码:

#include<cstdio>
#include<iostream>
#include<cstring>
#include<string>
#include<algorithm>
#include<map>
#include<set>
#include<vector>
#include<queue>
#include<cstdlib>
#include<ctime>
#include<cmath>
#include<bitset>
using namespace std;
typedef __int64 LL;
#define M 5010struct girl {int prior;LL word;
} g[M];
int T, n, tot, alwaysontop;int main() {int i, u, j, success, w, x;char op[30];scanf("%d", &T);while (T--) {scanf("%d", &n);tot = 0;alwaysontop = -1;for (i = 1; i <= n; i++) {printf("Operation #%d: ", i);scanf("%s", op);if (strcmp(op, "Add") == 0) {scanf("%d", &u);success = 1;for (j = 0; j < tot; j++) {if (g[j].prior == u) {success = 0;break;}}if (success) {printf("success.\n");g[tot].prior = u;g[tot].word = 0;tot++;} elseprintf("same priority.\n");} else if (strcmp(op, "Close") == 0) {scanf("%d", &u);success = 0;for (j = 0; j < tot; j++) {if (g[j].prior == u) {success = 1;u = j;break;}}if (success) {if (g[u].prior == alwaysontop)alwaysontop = -1;printf("close %d with %I64d.\n", g[u].prior, g[u].word);for (j = u; j < tot; j++)g[j] = g[j + 1];tot--;} elseprintf("invalid priority.\n");} else if (strcmp(op, "Chat") == 0) {scanf("%d", &w);if (alwaysontop != -1) {for (u = 0; u < tot; u++) {if (g[u].prior == alwaysontop) {g[u].word += w;break;}}printf("success.\n");} else if (tot > 0) {g[0].word += w;printf("success.\n");} elseprintf("empty.\n");} else if (strcmp(op, "Rotate") == 0) {scanf("%d", &x);if (x >= 1 && x <= tot) {x--;while (x) {swap(g[x], g[x - 1]);x--;}printf("success.\n");} elseprintf("out of range.\n");} else if (strcmp(op, "Prior") == 0) {if (tot) {u = 0;for (j = 1; j < tot; j++) {if (g[j].prior > g[u].prior)u = j;}while (u) {swap(g[u], g[u - 1]);u--;}printf("success.\n");} elseprintf("empty.\n");} else if (strcmp(op, "Choose") == 0) {scanf("%d", &u);success = 0;for (j = 0; j < tot; j++) {if (g[j].prior == u) {success = 1;u = j;break;}}if (success) {while (u) {swap(g[u], g[u - 1]);u--;}printf("success.\n");} elseprintf("invalid priority.\n");} else if (strcmp(op, "Top") == 0) {scanf("%d", &u);success = 0;for (j = 0; j < tot; j++) {if (g[j].prior == u) {success = 1;break;}}if (success) {alwaysontop = u;printf("success.\n");} elseprintf("invalid priority.\n");} else if (strcmp(op, "Untop") == 0) {if (alwaysontop != -1) {alwaysontop = -1;printf("success.\n");} elseprintf("no such person.\n");}}if (alwaysontop != -1) {for (j = 0; j < tot; j++) {if (g[j].prior == alwaysontop) {u = j;break;}}if (g[u].word)printf("Bye %d: %I64d\n", g[u].prior, g[u].word);}for (j = 0; j < tot; j++) {if (g[j].word && g[j].prior != alwaysontop) {printf("Bye %d: %I64d\n", g[j].prior, g[j].word);}}}return 0;
}