算法-全排列

1、全排列函数的使用

举例:{1,2,3}的全排列

#include<iostream>
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int main(){ll a[3] = {1, 2, 3};do{for (ll i = 0; i < 3;i++){cout << a[i] << " ";}cout << endl;} while (next_permutation(a, a + 3));
}

2、算法题应用

B-小苯购物_牛客周赛 Round 94

题目描述: 给我们3个优惠券,每个优惠券存在两个参数a,b。表示只有商品价格大于a元的时候我们才可以优惠b元。每种商品我们可以选或者不选。给出一开始商品的价格n,问最终n的最小值为多少?

本题思路:

  1. b都是大于0的,如果可以选择优惠我们选就比不选好。
  2. 但是这样就会存在一些问题,选择优惠之后可能商品的价格会变低,影响后面商品优惠的选择,说明这个又和优惠券的选择顺序有关。
  3. 本题只存在3个优惠券,我们枚举出所有选择的全排列进行依次比较即可,这样以来我们就可以考虑到所有的选择情况了。
#include<iostream>
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll n; // 商品初始价格
ll a[3], b[3]; // 三个优惠券的参数,a[i]表示优惠阈值,b[i]表示优惠金额
// 函数f,用于计算在特定优惠券选择顺序下的最终价格
ll f(ll i, ll j, ll k) {ll m = n; // 初始化当前价格为初始价格n// 检查第一个优惠券是否可用,如果可用则应用优惠if (a[i] <= m) m -= b[i];// 检查第二个优惠券是否可用,如果可用则应用优惠if (a[j] <= m) m -= b[j];// 检查第三个优惠券是否可用,如果可用则应用优惠if (a[k] <= m) m -= b[k];// 如果最终价格小于0,则设置为0if (m < 0) m = 0;return m; // 返回最终价格
}
void solve() {cin >> n; // 读取商品初始价格n// 读取三个优惠券的参数for (ll i = 0; i < 3; i++) {cin >> a[i] >> b[i];}ll mx = n; // 初始化最小价格为初始价格nll c[3] = {0, 1, 2}; // 优惠券选择顺序的初始排列// 遍历所有可能的优惠券选择顺序do {ll v = f(c[0], c[1], c[2]); // 计算当前顺序下的最终价格// 如果当前最终价格小于当前最小价格,则更新最小价格if (v < mx) {mx = v;}} while (next_permutation(c, c + 3)); // 生成下一个排列cout << mx << endl; // 输出最小价格
}
int main() {ll t;cin >> t;while (t--) { solve(); }
}

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

面试加分秘籍:校招数据倾斜场景下的SQL优化方案

校招面试经常会问大家有没有过调优的经验&#xff0c;相信大家的回答基本都是往数据倾斜和小文件问题这两方面回答&#xff0c;对于数据倾斜相信大部分同学对热key打散或null值引发的倾斜已经非常熟悉&#xff0c;但这些内容面试官也是听腻了&#xff0c;希望大家在面试时候讲一…

Elasticsearch索引机制与Lucene段合并策略深度解析

引言 在现代分布式搜索引擎Elasticsearch中&#xff0c;文档的索引、更新和删除操作不仅是用户交互的核心入口&#xff0c;更是底层存储架构设计的关键挑战。本文围绕以下核心链路展开&#xff1a; 文档生命周期管理&#xff1a;从客户端请求路由到分片定位&#xff0c;从内存…

git提交更改

第一步&#xff1a;添加改动 git add . 第二步&#xff1a;提交改动 git commit -m “替换了 SerialPort 库文件” 第三步&#xff1a;推送到远程 git push 为什么git 的UI界面做的远不如SVN

WPF的基础控件:布局控件(StackPanel DockPanel)

布局控件&#xff08;StackPanel & DockPanel&#xff09; 1 StackPanel的Orientation属性2 DockPanel的LastChildFill3 嵌套布局示例4 性能优化建议5 常见问题排查 在WPF开发中&#xff0c;布局控件是构建用户界面的基石。StackPanel和DockPanel作为两种最基础的布局容器&…

互联网大厂Java求职面试:AI大模型推理服务性能优化与向量数据库分布式检索

互联网大厂Java求职面试&#xff1a;AI大模型推理服务性能优化与向量数据库分布式检索 面试现场&#xff1a;技术总监的连环追问 技术总监&#xff1a;&#xff08;翻看着简历&#xff09;郑薪苦&#xff0c;你在上一家公司参与过LLM推理服务的性能优化项目&#xff1f;说说你…

如何解决网站服务器的异常问题?

当网站服务器出现异常情况&#xff0c;导致用户无法正常访问网页信息的时候&#xff0c;该如何解决这一问题呢&#xff1f;小编下面就带领大家共同探讨一下这一问题。 企业在面对网站服务器异常时&#xff0c;首先要对服务器硬件设备进行详细的检查&#xff0c;可以使用硬盘检测…

Day 35

模型可视化与推理 知识点回顾&#xff1a; 三种不同的模型可视化方法&#xff1a;推荐torchinfo打印summary权重分布可视化 进度条功能&#xff1a;手动和自动写法&#xff0c;让打印结果更加美观 推理的写法&#xff1a;评估模式 模型结构可视化 理解一个深度学习网络最重要的…

[yolov11改进系列]基于yolov11引入自注意力与卷积混合模块ACmix提高FPS+检测效率python源码+训练源码

[ACmix的框架原理] 1.1 ACMix的基本原理 ACmix是一种混合模型&#xff0c;结合了自注意力机制和卷积运算的优势。它的核心思想是&#xff0c;传统卷积操作和自注意力模块的大部分计算都可以通过1x1的卷积来实现。ACmix首先使用1x1卷积对输入特征图进行投影&#xff0c;生成一组…

[DS]使用 Python 库中自带的数据集来实现上述 50 个数据分析和数据可视化程序的示例代码

使用 Python 库中自带的数据集来实现上述 50 个数据分析和数据可视化程序的示例代码 摘要&#xff1a;由于 sample_data.csv 是一个占位符文件&#xff0c;用于代表任意数据集&#xff0c;我将使用 Python 库中自带的数据集来实现上述 50 个数据分析和数据可视化程序的示例代码…

【Python 中 lambda、map、filter 和 reduce】详细功能介绍及用法总结

以下是 Python 中 lambda、map、filter 和 reduce 的详细功能介绍及用法总结&#xff0c;涵盖基础语法、高频场景和示例代码。 一、lambda 匿名函数 功能 用于快速定义一次性使用的匿名函数。不需要显式命名&#xff0c;适合简化小规模逻辑。 语法 lambda 参数1, 参数2, ..…

贪心算法——分数背包问题

一、背景介绍 给定&#x1d45b;个物品&#xff0c;第&#x1d456;个物品的重量为&#x1d464;&#x1d454;&#x1d461;[&#x1d456;−1]、价值为&#x1d463;&#x1d44e;&#x1d459;[&#x1d456;−1]&#xff0c;和一个容量为&#x1d450;&#x1d44e;&#…

《软件工程》第 5 章 - 需求分析模型的表示

目录 5.1需求分析与验证 5.1.1 顺序图 5.1.2 通信图 5.1.3 状态图 5.1.4 扩充机制 5.2 需求分析的过程模型 5.3 需求优先级分析 5.3.1 确定需求项优先级 5.3.2 排定用例分析的优先顺序 5.4 用例分析 5.4.1 精化领域概念模型 5.4.2 设置分析类 5.4.3 构思分析类之间…

基于MATLAB的大规模MIMO信道仿真

1. 系统模型与参数设置 以下是一个单小区大规模MIMO系统的参数配置示例&#xff0c;适用于多发多收和单发单收场景。 % 参数配置 params.N_cell 1; % 小区数量&#xff08;单小区仿真&#xff09; params.cell_radius 500; % 小区半径&#xff08;米&#xff09…

想查看或修改 MinIO 桶的匿名访问权限(public/private/custom)

在 Ubuntu 下&#xff0c;如果你想查看或修改 MinIO 桶的匿名访问权限&#xff08;public/private/custom&#xff09;&#xff0c;需要使用 mc anonymous 命令而不是 mc policy。以下是详细操作指南&#xff1a; 1. 查看当前匿名访问权限 mc anonymous get minio/test输出示例…

HarmonyOS:相机选择器

一、概述 相机选择器提供相机拍照与录制的能力。应用可选择媒体类型实现拍照和录制的功能。调用此类接口时&#xff0c;应用必须在界面UIAbility中调用&#xff0c;否则无法启动cameraPicker应用。 说明 本模块首批接口从API version 11开始支持。后续版本的新增接口&#xff0…

牛客AI简历筛选:提升招聘效率的智能解决方案

在竞争激烈的人才市场中&#xff0c;企业HR每天需处理海量简历&#xff0c;面临筛选耗时长、标准不统一、误判率高等痛点。牛客网推出的AI简历筛选工具&#xff0c;以“20分钟处理1000份简历、准确率媲美真人HR”的高效表现&#xff0c;成为企业招聘的智能化利器。本文将深度解…

白杨SEO:做AI搜索优化的DeepSeek、豆包、Kimi、百度文心一言、腾讯元宝、通义、智谱、天工等AI生成内容信息采集主要来自哪?占比是多少?

大家好&#xff0c;我是白杨SEO&#xff0c;专注SEO十年以上&#xff0c;全网SEO流量实战派&#xff0c;AI搜索优化研究者。 在开始写之前&#xff0c;先说个抱歉。 上周在上海客户以及线下聚会AI搜索优化分享说各大AI模型的联网搜索是关闭的&#xff0c;最开始上来确实是的。…

QML与C++交互2

在QML与C的交互中&#xff0c;主要有两种方式&#xff1a;在C中调用QML的方法和在QML中调用C的方法。以下是具体的实现方法。 在C中调用QML的方法 首先&#xff0c;我们需要在QML文件中定义一个函数&#xff0c;然后在C代码中调用它。 示例 //QML main.qml文件 import QtQu…

OpenGL Chan视频学习-8 How I Deal with Shaders in OpenGL

bilibili视频链接&#xff1a; 【最好的OpenGL教程之一】https://www.bilibili.com/video/BV1MJ411u7Bc?p5&vd_source44b77bde056381262ee55e448b9b1973 函数网站&#xff1a; docs.gl 说明&#xff1a; 1.之后就不再整理具体函数了&#xff0c;网站直接翻译会更直观也…

动态防御新纪元:AI如何重构DDoS攻防成本格局

1. 传统高防IP的静态瓶颈与成本困境 传统高防IP依赖预定义规则库&#xff0c;面对SYN Flood、CC攻击等威胁时&#xff0c;常因规则更新滞后导致误封合法流量。例如&#xff0c;某电商平台曾因静态阈值过滤误封20%的订单接口流量&#xff0c;直接影响营收。以下代码模拟传统方案…