当前位置: 首页 > news >正文

540 - Team Queue (UVA)

题目链接如下:

Online Judge

对比刘汝佳的代码,我没有用queue来排整个队伍,因为那样的话遍历整个队伍太麻烦,vector比较方便。但vector删除元素比较耗时,所以就不删了,仅仅用pivot来指代目前队伍的开始。

代码如下:

#include <cstdio>
#include <queue>
#include <algorithm>
#include <vector>
// #define debug
const int maxx = 1000000;
const int maxOp = 8;int t, k, nbr, pivot, kase = 0;
int team[maxx];
char op[maxOp];int main(){#ifdef debugfreopen("0.txt", "r", stdin);freopen("1.txt", "w", stdout);#endifwhile(scanf("%d", &t) == 1 && t){printf("Scenario #%d\n", ++kase);std::fill(team, team + maxx, -1);for(int i = 0; i < t; ++i){scanf("%d", &k);for(int j = 0; j < k; ++j){scanf("%d", &nbr);team[nbr] = i;}}std::vector<std::queue<int>> vec;pivot = 0;while(scanf("%s", op) == 1 && op[0] != 'S'){if(op[0] == 'E'){scanf("%d", &nbr);int i;for(i = pivot; i < vec.size(); ++i){if(team[vec[i].front()] == team[nbr]){vec[i].push(nbr);break;}}if(i == vec.size()){std::queue<int> tmp;tmp.push(nbr);vec.push_back(tmp);}} else{printf("%d\n", vec[pivot].front());vec[pivot].pop();if(vec[pivot].empty()){pivot++;}}}printf("\n");}#ifdef debugfclose(stdin);fclose(stdout);#endifreturn 0;
}

http://www.lryc.cn/news/193172.html

相关文章:

  • 投资组合之如何估值
  • 2024届通信工程保研经验分享(预推免入营即offer)
  • L2-025 分而治之 - java
  • Python+高光谱数据预处理-机器学习-深度学习-图像分类-参数回归
  • 免费 AI 编程助手 Amazon CodeWhisperer 体验
  • 【Linux】从零开始学习Linux基本指令(一)
  • Java GC 算法
  • vue3 v-html中使用v-viewer
  • Leetcode算法解析——查找总价格为目标值的两个商品
  • unity游戏开发引擎unity3D开发
  • iptables
  • 竞赛 深度学习LSTM新冠数据预测
  • Spark入门
  • react–antd 实现TreeSelect树形选择组件,实现点开一层调一次接口
  • android 固定进度环形刷新效果
  • python jieba 词性标注 中文词性分类 nlp jieba.posseg
  • LeetCode 每日一题 2023/10/9-2023/10/15
  • 相似性搜索:第 3 部分--混合倒排文件索引和产品量化
  • 小程序使用uni.createAnimation只执行一次的问题
  • win10取消ie浏览器自动跳转edge浏览器
  • 目录启示:使用 use 关键字为命名空间内的元素建立非限定名称
  • Go语言介绍与安装
  • 常用傅里叶变换表
  • 生活中的视音频技术
  • 一种用于肽图分析的烷化剂,Desthiobiotin-Iodoacetamide
  • 【(数据结构) —— 顺序表的应用-通讯录的实现】
  • macbook磁盘清理免费教程分享
  • cartographer_ros数据加载与处理
  • 设计模式-7种结构型模式
  • 华为李鹏:加速5G商业正循环,拥抱更繁荣的5.5G(5G-A)