IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> Codeforces E1 (c++、队列、栈、附双队列解法传送门) -> 正文阅读

[数据结构与算法]Codeforces E1 (c++、队列、栈、附双队列解法传送门)

原题链接

? ? ? ? 友友们,闲着没事儿,不要靠近cf,会变得不幸(bushi)

? ? ? ? 以上为本人,wa了n次以后的急躁发言,请忽略。

目录

1、题意分析

2、思路分析

3、AC代码


1、题意分析

? ? ? ?我们有t组数据的输入,每组数据的输入分为两行,第一行为这次需要进行特殊操作的珊瑚橘个数n,第二行为这n个数。

? ? ? ? 我们比较的规则是:每次输入的数字都和队首的数字比较。如果比队首的数字小,那么这个数就成为新的队首。如果比队首的数字小,那么这个数字就放到队尾,队首数字不变。当然,输入的第一个数字自动将其作为队首。

? ? ? ? 最后,再将这n个数字按排列好的顺序输出。

2、思路分析

? ? ? ? 因为每次小的数字都放在队首,最先会被输出。也就是说,越晚加到队首的数字会被越先输出。而每次大的数字都放在了队尾,最后被输出。也就是说,越晚放到队尾的数字会越晚被输出。

? ? ? ? 前者,刚好满足先进后出的原则,而后者,刚好满足队列先进先出的原则。(因为我还不会用双队列,这里也为友友们提供了双队列解法的传送门?这人表面萌新,实则大佬

3、AC代码

#include <bits/stdc++.h>
#include <queue>
#include <stack>
#define ll long long

using namespace std;
stack <ll> small;//小的数字 
queue <ll> big;//大的数字 

int main () {
	ll b , n;//队首的		正在输入的 
	ll t , m;//总共的数据组数	每组数据的个数 
	
	scanf ("%lld" , &t);
	for(ll i = 0 ; i < t ; i ++) {
		scanf ("%lld" , &m);
		for(ll j = 0 ; j < m ; j ++) {
			scanf ("%lld" , &n);
			if (j == 0) {
				small.push (n);//输入的第一个数 
				b = n;
			} 
			else {
				if(n >= b) big.push (n);//如果输入的数比队首的数字大或者等于 
				else {
					small.push (n);//如果输入的数比队首的数字小 
					b = n;//运算完以后,将此次输入的数赋给b,便于下一次的比较 
				}
			}
		}//输入完毕所有数字 
		ll c = 0;//方便判断是否需要输出空格 
		while (! small.empty()) {
			if(c == 1)printf (" ");
			printf ("%lld" , small.top());
			small.pop();
			c = 1;
		}
		while (! big.empty()) {
			printf (" %lld" , big.front ());
			big.pop();
		}
		printf ("\n");
	}
	return 0;
}

加油鸭,友友们!虽然我今天写这个题,给我心态整炸了,但我下次有机会还来。(手动秃头)

  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2021-11-14 21:58:23  更:2021-11-14 21:59:47 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 10:36:56-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码