一流的微商城网站建设wordpress 文章 分类 页面

张小明 2026/3/12 13:44:27
一流的微商城网站建设,wordpress 文章 分类 页面,企业网站建设周期,自己搭建云手机服务器【题目描述】小明在一次聚会中#xff0c;不慎遗失了自己的钱包#xff0c;在接下来的日子#xff0c;面对小明的将是一系列的补卡手续和堆积的账单… 在小明的百般恳求下#xff0c;老板最终同意延缓账单的支付时间。可老板又提出#xff0c;必须从目前还没有支付的所有账…【题目描述】小明在一次聚会中不慎遗失了自己的钱包在接下来的日子面对小明的将是一系列的补卡手续和堆积的账单… 在小明的百般恳求下老板最终同意延缓账单的支付时间。可老板又提出必须从目前还没有支付的所有账单中选出面额最大和最小的两张并把他们付清。还没有支付的账单会被保留到下一天。 请你帮他计算出支付的顺序。【输入】第1行一个正整数N(N≤15,000)表示小明补办银联卡总共的天数。第2行到第N1 行每一行描述一天中收到的帐单。先是一个非负整数M≤100表示当天收到的账单数后跟M个正整数都小于1,000,000,000表示每张帐单的面额。输入数据保证每天都可以支付两张帐单。【输出】输出共N 行每行两个用空格分隔的整数分别表示当天支付的面额最小和最大的支票的面额。【输入样例】4 3 3 6 5 2 8 2 3 7 1 7 0【输出样例】3 6 2 8 1 7 5 7这是一个非常经典的“动态维护极值”问题。既然题目不难我们直接切入重点对比两种解法的优劣和核心技巧。1. 题目本质我们需要维护一个账单池支持以下三种操作且每天都要执行Insert插入若干个新数值。Pop Max查询并删除最大值。Pop Min查询并删除最小值。2. 解法一STL Multiset最简捷利用 Cmultiset底层红黑树自动排序的特性它是解决此类问题的“万能钥匙”。思路所有数据丢进去它自动排好序。最小值*st.begin()最大值*st.rbegin()代码优势极短逻辑极其简单不易出错。关键避坑删除时必须用迭代器st.erase(it)绝不能用st.erase(val)。后者会把所有同金额的账单一次性删光导致 BUG。删除最大值推荐用st.erase(prev(st.end()))。3. 解法二双堆 懒惰删除最高效利用两个优先队列分别维护最大值和最小值。这是解决“堆不支持随机删除”的标准范式。思路双倍存储每个账单同时进入maxq和minq并绑定唯一id。懒惰删除 (Lazy Deletion)当我们在 maxq 删除了一个元素无法直接去 minq 里删它太慢。于是我们在 deleted 数组里标记该 id 为“已删除”。等到 minq 的堆顶恰好浮现出这个“已删除”的元素时再把它弹出丢掉。工程细节while循环清理“死元素”时最好加上!q.empty()防止越界虽然本题数据保证不空但这是好习惯。4. 总结与对比维度Multiset 解法双堆 懒惰删除 解法代码量极少中等思维难度无脑需理解延迟删除运行效率较慢 (红黑树常数大)极快(堆操作常数小)适用场景比赛省时间、数据量中等卡常数、追求极致性能完整代码/* //直接用multiset 可以直接得到最大值和最小值 #include iostream #include set//必须包含这个头文件 #include algorithm using namespace std; //使用multiset,因为它会自动排序,且允许有重复的账单金额 multisetintst; int main(){ ios::sync_with_stdio(false); cin.tie(0); int n; cinn; for(int i1;in;i){ int cnt;cincnt; //1.把今天的账单全部扔进set for(int j1;jcnt;j){ int tmp; cintmp; st.insert(tmp);//O(log N)自动排序 } //2.取出并删除最小值 //st.begin()就是最小值的迭代器 int mi*st.begin(); st.erase(st.begin());//注意:要用迭代器删除,否则会删除所有等于mi的元素 //3.取出并删除最大值 //st.rbegin()是反向迭代器的开始,指向最大值 //或者用prev(st.end())也可以找到最大值 int ma*st.rbegin(); //删除最大值(需要将反向迭代器转为正向迭代器,或者直接删除尾部前一个) //最简单的写法是删除迭代器:prev(st.end())指向最后一个元素 st.erase(prev(st.end())); //输出 coutmi ma\n; } return 0; } */ //用优先队列 #include iostream #include queue using namespace std; int deleted[1500001]; priority_queuepairint,int maxq;//默认最大堆 priority_queuepairint,int,vectorpairint,int,greaterpairint,int minq;//最小堆 int main(){ ios::sync_with_stdio(false); cin.tie(0); int n; cinn; int id0; for(int i1;in;i){//总共有n天 int cnt;//每天有cnt张账单 cincnt; for(int j1;jcnt;j){ int val; cinval; id; maxq.push({val,id}); minq.push({val,id}); } while(!maxq.empty() deleted[maxq.top().second]1){//如果最大堆堆顶的数的id已经被标记为在最小堆里删除了就直接弹出 maxq.pop();//如果最大堆堆顶的数的id已经被标记为在最小堆里删除了就直接弹出 } int mamaxq.top().first;//最大堆的最大值 deleted[maxq.top().second]1;//标记这个最大值的id为1已被删除后面不能被最小堆拿来用了 maxq.pop();//把最大堆的最大值弹出 while(!minq.empty() deleted[minq.top().second]1){//如果最小堆堆顶的数的id已经被标记为在最大堆里删除了就直接弹出 minq.pop();//如果最小堆堆顶的数的id已经被标记为在最大堆里删除了就直接弹出 } int miminq.top().first;//最小堆的最小值 deleted[minq.top().second]1;//标记这个最小值的id为1已被删除后面不能被最大堆拿来用了 minq.pop(); coutmi ma \n; } return 0; }在比赛中如果时间允许N10^5优先用 Multiset 如果数据量极大或时限很紧必须掌握双堆懒惰删除。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

大连网站建设特色网络平台代理合同

Web 搜索引擎优化(SEO)详解 引言 随着互联网的普及,越来越多的企业和个人开始关注网络营销。而搜索引擎优化(SEO)作为网络营销的重要组成部分,已经成为提升网站流量和品牌知名度的重要手段。本文将从SEO的基本概念、策略和实施方法等方面,对Web搜索引擎优化进行详细介…

张小明 2026/3/5 6:04:05 网站建设

谷歌网站收录提交成都微信端网站建

脉振方波高频注入代码增强型滑膜esmo代码,永磁同步电机高频注入程序 资料为C代码一份,大厂代码,可运行,经典流传; 配套一篇代码对应的说明文档,详细算法说明; 脉振方波注入方法相对于脉振正弦信…

张小明 2026/3/5 6:04:08 网站建设

网站开发登录链接移动网站性能

JeecgBoot工作流引擎实战:5分钟实现业务流程自动化 【免费下载链接】JeecgBoot 🔥「企业级低代码平台」前后端分离架构SpringBoot 2.x/3.x,SpringCloud,Ant Design&Vue3,Mybatis,Shiro,JWT。…

张小明 2026/3/5 6:04:08 网站建设

网站建设与制作流程河源做网站优化

在数字化转型加速的今天,会计档案管理正从传统纸质存档向电子智能化管理全面升级。会计档案作为企业财务工作的核心凭证,是合规审计、风险防控的重要依据,但传统管理模式中存储占用空间大、检索效率低、归档流程繁琐、安全风险高等问题&#…

张小明 2026/3/5 6:04:09 网站建设

寻找网站设计与制作企业营销型网站做的好

核心前提:带头结点链表的结构先明确:头结点不存有效数据,仅作为链表的 “入口”,head->next 指向第一个存储数据的结点。这是我们所有创建方法的基础,能避免空链表的特殊处理,新手优先掌握这种结构。方法…

张小明 2026/3/5 6:04:09 网站建设

建站教程视频下载html网站设计实验报告

第一章:从原始数据到发表级图表——R语言分层分析的科研价值在现代科研工作中,数据不再仅仅是统计结果的附属品,而是驱动科学发现的核心资源。R语言凭借其强大的统计建模能力和高度可定制的可视化工具,成为实现从原始数据清洗到发…

张小明 2026/3/5 6:04:10 网站建设