洛谷 P7912:[CSP-J 2021 T4] 小熊的果篮 ← 双向链表

发布时间:2026/8/25 0:04:35

洛谷 P7912:[CSP-J 2021 T4] 小熊的果篮 ← 双向链表
【题目来源】https://www.luogu.com.cn/problem/P7912【题目描述】小熊的水果店里摆放着一排 n 个水果。每个水果只可能是苹果或桔子从左到右依次用正整数 1,2,…,n 编号。连续排在一起的同一种水果称为一个“块”。小熊要把这一排水果挑到若干个果篮里具体方法是每次都把每一个“块”中最左边的水果同时挑出组成一个果篮。重复这一操作直至水果用完。注意每次挑完一个果篮后“块”可能会发生变化。比如两个苹果“块”之间的唯一桔子被挑走后两个苹果“块”就变成了一个“块”。请帮小熊计算每个果篮里包含的水果。【输入格式】第一行包含一个正整数 n表示水果的数量。第二行包含 n 个空格分隔的整数其中第 i 个数表示编号为 i 的水果的种类1 代表苹果0 代表桔子。​​​​​​​【输出格式】输出若干行。第 i 行表示第 i 次挑出的水果组成的果篮。从小到大排序输出该果篮中所有水果的编号每两个编号之间用一个空格分隔。​​​​​​​【输入样例】121 1 0 0 1 1 1 0 1 1 0 0【输出样例】1 3 5 8 9 112 4 6 12710【数据范围】对于 10% 的数据n≤5。对于 30% 的数据n≤1000。对于 70% 的数据n≤50000。对于 100% 的数据1≤n≤2×10^5。【算法分析】● 由于数据规模较大建议 C/C 选手使用 scanf 和 printf 语句输入、输出。​​​​​​​●​​​​​​​ 高效地删除元素并合并相邻块双向链表是最合适的数据结构。●​​​​​​​ it fruits.erase(it) 整体作用等价于1. 删除 it 指向的元素2. 让 it 指向被删元素的下一个元素。---每次都把每一个“块”中最左边的水果同时挑出即从块中删除元素。● 若用 STL list 模拟会有 3 个样例超时TLE。问题出在 STL list 的 erase 操作上。虽然 list 的 erase 是 O(1)但每一轮都需要遍历整个链表而且每次删除都会导致大量迭代器移动。​​​​​​​如下是 70 分代码3 个 TLE。#include bits/stdc.h using namespace std; /* Use a list to store fruits, with each element being a pair of type,number */ listpairint,int fruits; int main() { int n; scanf(%d,n); for(int i1; in; i) { int type; scanf(%d,type); fruits.push_back({type,i}); } vectorvectorint ans; while(!fruits.empty()) { vectorint block; int last_type-1; /* Traverse the linked list and extract the leftmost element of each block */ auto itfruits.begin(); while(it!fruits.end()) { if(it-first!last_type) { block.push_back(it-second); last_typeit-first; itfruits.erase(it); } else { last_typeit-first; it; } } sort(block.begin(),block.end()); ans.push_back(block); } for(auto block:ans) { for(int i0; iblock.size(); i) { printf(%d ,block[i]); } printf(\n); } return 0; } /* in: 12 1 1 0 0 1 1 1 0 1 1 0 0 out: 1 3 5 8 9 11 2 4 6 12 7 10 */【算法代码】#include bits/stdc.h using namespace std; const int N2e55; int ans[N],le[N],ri[N],a[N]; int n,len,z,y; int main() { cinn; a[0]a[n1]-1; for(int i1; in; i) { scanf(%d,a[i]); le[i]i-1,ri[i]i1; if(a[i]!a[i-1]) { ans[len]i; } } while(len) { int t0; for(int i1; ilen; i) { printf(%d ,ans[i]); zle[ans[i]],yri[ans[i]]; le[y]z,ri[z]y; if(a[ans[i]]a[y] a[z]!a[y]) ans[t]y; } lent; coutendl; } return 0; } /* in: 12 1 1 0 0 1 1 1 0 1 1 0 0 out: 1 3 5 8 9 11 2 4 6 12 7 10 */【参考文献】https://blog.csdn.net/acker007/article/details/135043572https://www.luogu.com.cn/problem/solution/P7912https://blog.csdn.net/joseph0530/article/details/132946346

相关新闻

三步把QQ空间历史说说导出到本地:GetQzonehistory 极简指南

三步把QQ空间历史说说导出到本地:GetQzonehistory 极简指南

2026/8/25 0:04:34

三步把QQ空间历史说说导出到本地:GetQzonehistory 极简指南 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory Meta Description:GetQzonehistory 是一个QQ空间历史说…

认知外包的黑洞:比短视频/微博更致命的「思考代工」,正在让我们脑萎缩

认知外包的黑洞:比短视频/微博更致命的「思考代工」,正在让我们脑萎缩

2026/8/24 23:54:34

在探讨技术对人类心智的侵蚀时,我们往往将矛头指向短视频、微博或信息流。我们批判它们切碎了时间,用多巴胺劫持了注意力,让长阅读和深度思考成为奢侈。然而,当生成式AI以“全知全能”的问答姿态全面介入我们的生活时,…

微软技术面试模拟:从LRU缓存到系统设计的深度剖析

微软技术面试模拟:从LRU缓存到系统设计的深度剖析

2026/8/24 23:54:34

1. 面试模拟的价值与微软面试的独特之处最近在准备技术面试的朋友,尤其是目标瞄准微软这类顶级科技公司的,估计没少刷LeetCode,也没少看各种“八股文”。但说实话,光刷题和背知识点,离真正通过微软的面试还有一段距离。…

统计学硕士论文降AI教程:统计专业研究生论文AIGC超标免费4.8元知网维普达标完整操作指南

统计学硕士论文降AI教程:统计专业研究生论文AIGC超标免费4.8元知网维普达标完整操作指南

2026/8/25 1:04:37

统计学硕士论文降AI教程:统计专业研究生论文AIGC超标免费4.8元知网维普达标完整操作指南 第一次用降AI工具有很多不确定——传什么格式、选哪个模式、怎么验收。 这篇教程把统计学硕士论文降AI的常见问题都覆盖了,主要基于嘎嘎降AI(www.aig…

8 篇 约束人工智能的锁

8 篇 约束人工智能的锁

2026/8/25 1:04:37

《人工智能与2036年》 若无无条件的限制手段, 人工智能会与人类生命形成博弈, 于理论层面而言这种情况是百分之百会出现的。 用于约束人工智能的锁, 是一种加密技术, 它在完全暴露源代码的情形下, 即便调动全球的算力, 也仍旧无法被突破, 且这种加密需符合加密的有效泛型。 …

open_agb_firm 在3DS上跑原生GBA游戏:从克隆到开机的完整上手路径

open_agb_firm 在3DS上跑原生GBA游戏:从克隆到开机的完整上手路径

2026/8/25 1:04:37

open_agb_firm 在3DS上跑原生GBA游戏:从克隆到开机的完整上手路径 【免费下载链接】open_agb_firm open_agb_firm is a bare metal app for running GBA homebrew/games using the 3DS builtin GBA hardware. 项目地址: https://gitcode.com/gh_mirrors/op/open_a…

Montserrat 免费商用字体:3 个家族 9 字重 4 种格式,从安装到自建字体的实战指南

Montserrat 免费商用字体:3 个家族 9 字重 4 种格式,从安装到自建字体的实战指南

2026/8/25 1:04:37

Montserrat 免费商用字体:3 个家族 9 字重 4 种格式,从安装到自建字体的实战指南 【免费下载链接】Montserrat 项目地址: https://gitcode.com/gh_mirrors/mo/Montserrat Montserrat 是 SIL OFL 1.1 协议的开源几何无衬线字体:免费商…

QQ空间备份教程:3步导出全部说说和老照片

QQ空间备份教程:3步导出全部说说和老照片

2026/8/25 1:04:37

QQ空间备份教程:3步导出全部说说和老照片 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory GetQzonehistory 是专门做 QQ空间备份 的小工具:扫一次手机 QQ 的码&am…

科研工作流的高效搭建与落地实践指南

科研工作流的高效搭建与落地实践指南

2026/8/25 0:54:36

每次找到心仪的外国文献,却被付费墙冷冷地挡在外面,是不是感觉科研的热情瞬间被浇灭?作为学生党,我太懂这种无力感了。但好消息是,通过几个合法且免费的“通道”和技巧,我们完全能实现“文献自由”。今天分…

[光学原理与应用-521]:对光的错误理解与纠偏

[光学原理与应用-521]:对光的错误理解与纠偏

2026/8/24 19:53:32

首先光是一种能量的载体和形态,宏观上观察到的光是由无数个微观的光量子组成的,每个光子在产生的瞬间,其在真空的空间中以确定不变的速度沿着一个初始的方向一直向前,在微观层面,每个光量子的运动轨迹是以波函数所展现…

SIP通话转接原理与REFER方法实战解析

SIP通话转接原理与REFER方法实战解析

2026/8/24 19:56:07

1. 通话转接不是“挂断再拨号”,而是SIP会话的动态重定向你有没有遇到过这样的场景:客服坐席A正在和客户通电话,突然需要把这通对话无缝转给专家坐席B,客户完全感知不到中间的断连——既没听到忙音,也没被要求重新拨号…

Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

2026/8/24 21:16:09

1. 为什么选择Kolla-ansible来部署单节点OpenStack?如果你正在寻找一种能把OpenStack从“概念”快速变成“可用的实验环境”的方法,那么Kolla-ansible几乎是当前最主流、最省心的选择。我见过太多人卡在手动编译依赖、配置服务、处理版本冲突的泥潭里&am…

三步把QQ空间历史说说导出到本地:GetQzonehistory 极简指南

三步把QQ空间历史说说导出到本地:GetQzonehistory 极简指南

2026/8/25 0:04:34

三步把QQ空间历史说说导出到本地:GetQzonehistory 极简指南 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory Meta Description:GetQzonehistory 是一个QQ空间历史说…

洛谷 P7912:[CSP-J 2021 T4] 小熊的果篮 ← 双向链表

洛谷 P7912:[CSP-J 2021 T4] 小熊的果篮 ← 双向链表

2026/8/25 0:04:35

【题目来源】 https://www.luogu.com.cn/problem/P7912 【题目描述】 小熊的水果店里摆放着一排 n 个水果。每个水果只可能是苹果或桔子,从左到右依次用正整数 1,2,…,n 编号。连续排在一起的同一种水果称为一个“块”。小熊要把这一排水果挑到若干个果篮里&#x…

Transformers.js 网页端图像抠图实战:零后端 3 行代码返回透明 PNG

Transformers.js 网页端图像抠图实战:零后端 3 行代码返回透明 PNG

2026/8/25 0:04:35

Transformers.js 网页端图像抠图实战:零后端 3 行代码返回透明 PNG 【免费下载链接】transformers.js State-of-the-art Machine Learning for the web. Run 🤗 Transformers directly in your browser, with no need for a server! 项目地址: https:/…

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

2026/8/22 2:02:26

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…

导师推荐!2026最新AI论文工具测评与实用推荐

导师推荐!2026最新AI论文工具测评与实用推荐

2026/8/22 4:13:47

2026年真正好用的AI论文工具,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

告别游戏崩溃:XCOM 2模组管理器的智能革命

告别游戏崩溃:XCOM 2模组管理器的智能革命

2026/8/22 1:32:34

告别游戏崩溃:XCOM 2模组管理器的智能革命 【免费下载链接】xcom2-launcher The Alternative Mod Launcher (AML) is a replacement for the default game launchers from XCOM 2 and XCOM Chimera Squad. 项目地址: https://gitcode.com/gh_mirrors/xc/xcom2-lau…