NBUT 1535
题意:往一个塔里放数,取数,找第 k 个大的数
刚开始用 stack 做的,不知道怎样找第 k 个数
又想到用 vector ,以前用过
注释有点多吧 ......
代码如下:
#include<stdio.h>
#include<vector> //定义 c++ 中的容器所需的头文件
#include<algorithm> //sort 排序所需的头文件
using namespace std; //c++ 要用到
vector<int> qq1, qq2; //定义容器 qq1,qq2,相当于数组,比数组功能大点
int main()
{
int t, n, k;
scanf("%d", &t);
while(t--)
{
qq1.clear(); //由于多组数据,每次都将 qq1 清空
scanf("%d%d", &n, &k);
char ch[];
while(n--)
{
int a;
scanf("%s", ch);
if(ch[] == 'P')
{
scanf("%d", &a);
qq1.push_back(a); //将 a 放到容器 qq1 最后面
}
else if(ch[] == 'T')
{
int len = qq1.size(); //容器 qq1 中元素个数
printf("%d\n", qq1[len - ]); //输出 qq1 中最后面的元素,注意下标:len - 1,从 qq1[0] 开始
qq1.pop_back(); //将 qq1 最后的元素舍弃
}
else
{
int len = qq1.size();
qq2 = qq1; //将 qq1 复制到 qq2,避免影响 qq1
sort(qq2.begin(), qq2.end()); //将 qq2 从小到大排序
if(len >= k) //若元素个数大于 k ,输出第 k 个数
printf("%d\n", qq2[k - ]);
else printf("%d\n", qq2[len - ]); //否则,输出最大的数
}
}
}
return ;
}
NBUT 1535的更多相关文章
- NBUT 1457 莫队算法 离散化
Sona Time Limit:5000MS Memory Limit:65535KB 64bit IO Format: Submit Status Practice NBUT 145 ...
- ACM: NBUT 1107 盒子游戏 - 简单博弈
NBUT 1107 盒子游戏 Time Limit:1000MS Memory Limit:65535KB 64bit IO Format: Practice Appoint ...
- ACM: NBUT 1105 多连块拼图 - 水题 - 模拟
NBUT 1105 多连块拼图 Time Limit:1000MS Memory Limit:65535KB 64bit IO Format: Practice Appoint ...
- ACM: NBUT 1646 Internet of Lights and Switches - 二进制+map+vector
NBUT 1646 Internet of Lights and Switches Time Limit:5000MS Memory Limit:65535KB 64bit IO Fo ...
- NBUT 1525 Cow Xor(01字典树+前缀思想)
[1525] Cow Xor 时间限制: 2000 ms 内存限制: 65535 K 问题描述 农民约翰在喂奶牛的时候被另一个问题卡住了.他的所有N(1 <= N <= 100,000)个 ...
- NBUT 1186 Get the Width(DFS求树的宽度,水题)
[1186] Get the Width 时间限制: 1000 ms 内存限制: 65535 K 问题描述 It's an easy problem. I will give you a binary ...
- NBUT 1635 Explosion(最小顶点覆盖)
[1635] Explosion 时间限制: 10000 ms 内存限制: 65535 K 问题描述 there is a country which contains n cities connec ...
- NBUT 1602 Mod Three(线段树单点更新区间查询)
[1602] Mod Three 时间限制: 5000 ms 内存限制: 65535 K 问题描述 Please help me to solve this problem, if so, Liang ...
- NBUT 1028 该减肥了(简单递推)
[1028] 该减肥了 时间限制: 1000 ms 内存限制: 65535 K 问题描述 由于长期缺乏运动,Teacher Xuan发现自己的身材臃肿了许多,于是他想健身,更准确地说是减肥.Teach ...
随机推荐
- MySQL存储引擎的实际应用以及对MySQL数据库中各主要存储引擎的独特特点的描述
MySQL存储引擎的实际应用以及对MySQL数据库中各主要存储引擎的独特特点的描述: 1.MySQL有多种存储引擎: MyISAM.InnoDB.MERGE.MEMORY(HEAP).BDB(Berk ...
- Grub实践
为运行于虚拟机上的CentOS 6添加一块新硬件,提供两个主分区: (1) 为硬盘新建两个主分区:并为其安装grub: (2) 为硬盘的第一个主分区提供内核和ramdisk文件: 为第二个分区提供ro ...
- OpenLDAP,一登录系统就修改密码
http://guodayong.blog.51cto.com/263451/d-2 郭大勇的博客 1:修改配置文件 在前面打开注释 moduleload ppolicy.la modulepat ...
- c#中如何获取listbox中选中值的问题
StringBuilder ConponPerson = new StringBuilder(); for (int i = 0; i < lb_tzs.Items.Cou ...
- Python3实现最小堆建堆算法
今天看Python CookBook中关于“求list中最大(最小)的N个元素”的内容,介绍了直接使用python的heapq模块的nlargest和nsmallest函数的解决方式,记得学习数据结构 ...
- 关于oracle 10g creating datafile with zero offset for aix
参考文档: 1.创建oracle数据文件时需要注意的地方(OS Header Block) http://www.aixchina.net/Question/20406 2.oracle 创建数据文件 ...
- CentOS 6 安装 MySQL-python
yum install -y mysql-devel python-devel python-setuptools pip install MySQL-python
- 利用Jurassic在.net下运行js函数
static void Main(string[] args) { var eng = new Jurassic.ScriptEngine(); eng.Evaluate("function ...
- angular中的表单验证
angular中的表单验证很强大, 一共有5中验证信息,$valid,$invalid,$pristine,$dirty,$error. $valid-----当验证通过的时候,为true,不通过的时 ...
- makfile
1. Makefile 简介 Makefile 是和 make 命令一起配合使用的. 很多大型项目的编译都是通过 Makefile 来组织的, 如果没有 Makefile, 那很多项目中各种库和代码之 ...