士兵排列问题

解法一:

deque实现队头入队和队尾入队即可得到编号排列,每个士兵有二个属性:编号、能力值。

#include<iostream>
#include<algorithm>
#include<deque>
#include<vector>
using namespace std;
#define endl '\n'
struct shib {
	int bianh;
	int nengl;
};
bool cmp(struct shib& a, struct shib& b) {
	return a.nengl > b.nengl;

}
void solve() {
	deque<int> p;
	int n, a;
	cin >> n;
	string st;
	cin >> st;
	for (int i = 0; i < st.size(); i++) {
		if (st[i] == '0') p.push_front(i + 1);
		else p.push_back(i + 1);
	}
	vector<struct shib> vec(n);
	for (int i = 0; i < n; i++) {
		vec[i].bianh = p[i];
		cin >> a;
		vec[i].nengl = a;
	}
	sort(vec.begin(), vec.end(), cmp);
	for (int i = 0; i < n; i++) {
		cout << vec[i].bianh << " ";
	}
	cout << endl;
}
int main() {
	solve();
	return 0;
}

解法二:感谢dalao的分享

再来一篇迭代器遍历的

#include <iostream>
#include<algorithm>
#include<string>
#include<deque>
using namespace std;
struct arm {
    int located;
    int ability;
}ar[100005];
bool compare(const arm& a, const arm& b) {
    return a.ability > b.ability;
}
int main()
{
    int t, a;
    deque<int> d;
    string str;
    cin >> t >> str;
    for (int i = 0; i < t; i++) {
        if (str[i] == '1') d.push_back(i+1);
        else d.push_front(i+1);
    }
    int i = 0;
    for (auto it = d.begin(); it != d.end(); it++) {
        ar[i++].located = *it;
    }
    for (int i = 0; i < t; i++) {
        cin >> a;
        ar[i].ability = a;
    }
    sort(ar, ar + t, compare);
    for (int i = 0; i < t; i++)
        cout << ar[i].located << " ";
    cout << endl;
}

关于下标在stl中的应用局限。

解法三:

用数组模拟循环队列也可得到编号排列

解法四:

用链表的插入也可得到编号排列

。。。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/468297.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

CTF 题型 SSRF攻击例题总结

CTF 题型 SSRF攻击&例题总结 文章目录 CTF 题型 SSRF攻击&例题总结Server-side Request Forgery 服务端请求伪造SSRF的利用面1 任意文件读取 前提是知道要读取的文件名2 探测内网资源3 使用gopher协议扩展攻击面Gopher协议 &#xff08;注意是70端口&#xff09;python…

js教程(7)

一、事件监听&#xff08;事件绑定&#xff09; 1.事件 事件是在编程时系统内发生的动作或者发生的事情&#xff0c;比如用户在网页上点击按钮&#xff0c;摁下键盘的某个键。 2.事件监听 事件监听就是让程序检测是否有事件产生&#xff0c;一旦有事件触发&#xff0c;就立即…

Midjourney订阅攻略/Midjourney的基本参数和命令

AI绘画软件Midjourney使用原理 Midjourney是一个由Midjourney研究实验室开发的先进的人工智能程序&#xff0c;它可以根据用户的文本输入生成精美的图像。Midjourney的主要原理是通过收集大量已有的作品数据&#xff0c;对这些数据进行算法解析&#xff0c;它就可以通过关键词生…

【机器学习】函数

sigmoid函数 import matplotlib.pyplot as plt import numpy as npdef sigmoid(x):return 1/(1np.exp(-x))def plot_sigmoid():# param:起点&#xff0c;终点&#xff0c;间距x np.arange(-10, 10, 0.1) #起点&#xff0c;终点&#xff0c;间距y sigmoid(x)plt.plot(x, y)plt…

【Web】浅聊Hessian反序列化之打Spring AOP——JNDI

目录 前言 简单分析 EXP 前言 前文&#xff1a;【Web】浅聊Java反序列化之Rome——关于其他利用链-CSDN博客 前文里最后给到一条HotSwappableTargetSource利用链&#xff0c;就是我们今天PartiallyComparableAdvisorHolder链子的前半段(触发恶意类的toString方法)&#xf…

蓝桥杯练习01卡片化标签

卡片化标签页 介绍 选项卡功能在前端开发中特别常见&#xff0c;作为设置选项的模块&#xff0c;每个选项卡代表一个活动的区域&#xff0c;点击不同的区域&#xff0c;即可展现不同的内容&#xff0c;这样既能节约页面的空间又能提升页面性能。 本题需要在已提供的基础项目中…

基于SpringBoot+Vue中国陕西民俗网(源码+部署说明+演示视频+源码介绍)

您好&#xff0c;我是码农飞哥&#xff08;wei158556&#xff09;&#xff0c;感谢您阅读本文&#xff0c;欢迎一键三连哦。&#x1f4aa;&#x1f3fb; 1. Python基础专栏&#xff0c;基础知识一网打尽&#xff0c;9.9元买不了吃亏&#xff0c;买不了上当。 Python从入门到精通…

[论文笔记] Gradient Surgery for Multi-Task Learning

【强化学习 137】PCGrad - 知乎 多任务学习(multi task):任务权重、loss均衡、梯度下降那点事 - 知乎 ICLR 2020 rejected submission:Yu T, Kumar S, Gupta A, et al. Gradient surgery for multi-task learning[J]. arXiv preprint arXiv:2001.06782, 2020. mul…

开源堡垒机Jumpserver安装教程

前言:堡垒机的应用场景 公司内有若干台服务器,既有windows的也有linux的, 提供有ERP,OA,Web,报表等等各种服务,往往需要远程登录到服务器上去做运维,但如果给root或者administrator权限,很容易出现不知道谁操作了的问题.如果不同人设置不同账号,又账号过多,权限不足等等其他问题…

HTML5球体下落粒子爆炸特效

HTML5球体下落粒子爆炸特效&#xff0c;源码由HTMLCSSJS组成&#xff0c;双击html文件可以本地运行效果&#xff0c;也可以上传到服务器里面 下载地址 HTML5球体下落粒子爆炸特效

【模拟】【C++算法】2826. 将三个组排序

LeetCode2826. 将三个组排序 给你一个下标从 0 开始长度为 n 的整数数组 nums 。 从 0 到 n - 1 的数字被分为编号从 1 到 3 的三个组&#xff0c;数字 i 属于组 nums[i] 。注意&#xff0c;有的组可能是 空的 。 你可以执行以下操作任意次&#xff1a; 选择数字 x 并改变它的…

易基因:人类大脑的单细胞DNA甲基化和3D基因组结构|Science

大家好&#xff0c;这里是专注表观组学十余年&#xff0c;领跑多组学科研服务的易基因。 高通通量表观基因组分析技术可用于阐明大脑中细胞复杂性的基因调控程序。5-甲基胞嘧啶 (5mCs)是哺乳动物基因组中最常见的修饰碱基&#xff0c;大多数5mCs发生在胞嘧啶-鸟嘌呤二核苷酸&a…

聚合音乐网-播放器网站源码

源码简介 MKOnlineMusicPlayer 是一款全屏的音乐播放器 UI 框架&#xff08;为避免侵权&#xff0c;已移除所有后端功能&#xff09;。 前端界面参照 QQ 音乐网页版进行布局&#xff0c;同时采用了流行的响应式设计&#xff0c;无论是在PC端还是在手机端&#xff0c;均能给您…

HarmonyOS NEXT应用开发—使用绘制组件实现自定义进度动画

介绍 本示例介绍使用绘制组件中的Circle组件以及Path组件实现实时进度效果。该场景多用于手机电池电量、汽车油量、水位变化等动态变化中。 效果预览图 使用说明 加载完成后初始显示进度为0%&#xff0c;颜色为红色&#xff0c;且有充电、放电两个按钮。点击充电按钮&#x…

AcWing 1510:楼梯 ← 浮点数二分

【题目来源】http://poj.org/problem?id2507https://www.acwing.com/problem/content/1512/【题目描述】 一个街道两侧有两栋楼&#xff0c;现在有如图所示两楼梯 x&#xff0c;y。 两个楼梯分别如图放置。 已知两个楼梯的长度和他们交点离地面的高度&#xff0c;求两栋楼之间…

B树B+树,字典树详解,哈夫曼树博弈树

目录 B树&#xff1a;B-Tree B树 字典树&#xff1a;Trie Tree 哈夫曼树 博弈树 B树&#xff1a;B-Tree 多路平衡搜索树 1.M阶B树&#xff0c;就是M叉&#xff08;M个指针&#xff09;。 2.每个节点内记录个数<M-1。 3.根节点记录个数>1。 4.其余节点内记录个数&…

【C语言】Leetcode 35. 搜索插入位置

文章目录 题目思路代码呈现 题目 链接: link 思路 这题较简单&#xff0c;就是找到目标元素的下标&#xff0c;或者插入位置&#xff0c;如果不熟练的话&#xff0c;一开始想到的肯定是冒泡排序&#xff0c;就是一个一个查下去&#xff0c;然后返回下表&#xff0c;这种冒泡排…

简单的溯源取证

环境准备: Linux虚拟机:内网部署蜜罐探测系统 。(192.168.XX.XX) windows虚拟机:有FTP弱口令漏洞的web服务 (受害机器) (192.168.125.134) kali Linux虚拟机:攻击机服务端 。 (192.168.125.130) MAC:管理员电脑。(192.168.XX.XX) 一、利用kailiLinuxmsf生成windows木马文件…

【Leetcode-19.删除链表的第N个节点】

题目详情&#xff1a; 给你一个链表&#xff0c;删除链表的倒数第 n 个结点&#xff0c;并且返回链表的头结点。 示例 1&#xff1a; 输入&#xff1a;head [1,2,3,4,5], n 2 输出&#xff1a;[1,2,3,5]示例 2&#xff1a; 输入&#xff1a;head [1], n 1 输出&#xff1…