寒假集训5——二分
这三题我都超时了优化完可能会再上传。这些都不是AC代码请批判性查阅轻喷1.B2166 查找不重复元素出现的位置题目描述输入 n 个不超过 109 的严格递增的正整数组成的数列 a1​,a2​,…,an​然后进行 m 次询问。对于每次询问给出一个整数 q要求输出这个数字在序列中出现的下标。如果序列中不包含该数字请输出 −1 。注意下标从 1 开始。输入格式第一行包含两个正整数 n 和 m分别表示数列的长度和询问的次数。第二行包含 n 个正整数 a1​,a2​,…,an​。接下来 m 行每行包含一个正整数 q表示一次询问。输出格式输出共 m 行。对于每次询问如果数字 q 存在于数列中则输出它在数列中的下标如果不存在则输出 −1。输入输出样例输入 #1复制运行5 4 10 20 30 40 50 30 10 50 35输出 #1复制运行3 1 5 -1说明/提示对于所有测试点保证1≤n,m≤1061≤ai​,q≤109对于 1≤in保证 ai​ai1​。本题输入输出量较大请使用较快的 IO 方式。#includeiostream using namespace std; const int N 1e6 10; int arr[N]; int Find(int x, int arr[], int n) { int l 1; int r n; int m l (r - l) / 2; if (arr[l] x) return l; if (arr[r] x) return r; while (l r) { m l (r - l) / 2; if (arr[m] x) l m 1; else if (arr[m] x) r m - 1; else return m; } return -1; } int main() { ios::sync_with_stdio(false); cin.tie(0); cout.tie(0); int n, m, q; cin n m; for (int i 1;i n;i) cin arr[i]; while (m--) { cin q; cout Find(q,arr,n) endl; } return 0; }2.B2167 查找最后一个出现的位置题目描述输入一个长度为 n 的非递减正整数数列 a1​,a2​,…,an​然后进行 m 次询问。对于每次询问给出一个整数 q要求输出这个数字在序列中最后一次出现的下标。如果序列中不包含该数字请输出 −1 。注意下标从 1 开始。输入格式第一行包含两个正整数 n 和 m分别表示数列的长度和询问的次数。第二行包含 n 个正整数 a1​,a2​,…,an​。接下来 m 行每行包含一个正整数 q表示一次询问。输出格式输出共 m 行。对于每次询问如果数字 q 存在于数列中则输出它在数列中最后一次出现的下标如果不存在则输出 −1。输入输出样例输入 #1复制运行8 5 2 3 5 5 5 8 9 9 5 2 9 6 8输出 #1复制运行5 1 8 -1 6说明/提示样例解释数列为 [2,3,5,5,5,8,9,9]。询问 5数字 5 最后一次出现在第 5 个位置。询问 2数字 2 最后一次出现在第 1 个位置。询问 9数字 9 最后一次出现在第 8 个位置。询问 6数列中不存在 6。询问 8数字 8 最后一次出现在第 6 个位置。数据范围对于所有测试点保证1≤n,m≤1061≤ai​,q≤109对于 1≤in保证 ai​≤ai1​。本题输入输出量较大请使用较快的 IO 方式。这题优化到这样已经是我想到的最优了真想不到别的办法了。主要是我觉得新的下标会覆盖旧的所以mp里面存的就是最新的下标而且这肯定比二分快也就只开了一个数组 。超时也不是内存超限证明就是快读快写的问题。然后我想过用scanf和printf优化还想过解除绑定优化然后还是不成功。#includestdio.h const long long N 1e9 10; int mp[N]; int main() { int n, m, q; scanf(%d%d,n,m); for (int i 1;i n;i) { int x; scanf(%d,x); //新的下标会覆盖旧的 mp[x] i; } while (m--) { scanf(%d,q); if (mp[q] 0) printf(%d\n,mp[q]); else printf(-1\n); } return 0; }3.P2249 【深基13.例1】查找题目描述输入 n 个不超过 109 的单调不减的就是后面的数字不小于前面的数字非负整数 a1​,a2​,…,an​然后进行 m 次询问。对于每次询问给出一个整数 q要求输出这个数字在序列中第一次出现的编号如果没有找到的话输出 −1 。输入格式第一行 2 个整数 n 和 m表示数字个数和询问次数。第二行 n 个整数表示这些待查询的数字。第三行 m 个整数表示询问这些数字的编号从 1 开始编号。输出格式输出一行m 个整数以空格隔开表示答案。输入输出样例输入 #1复制运行11 3 1 3 3 3 5 7 9 11 13 15 15 1 3 6输出 #1复制运行1 2 -1说明/提示数据保证1≤n≤1060≤ai​,q≤1091≤m≤105本题输入输出量较大请使用较快的 IO 方式。#includeiostream using namespace std; const int N1e610; int arr[N]; const int N19e8; int mp[N1*2]; int main() { int n,m,q; scanf(%d%d,n,m); for(int i1;in;i) scanf(%d,arr[i]); for(int in;i1;i--) mp[arr[i]]i; while(m--) { scanf(%d,q); if(mp[q]0) printf(%d ,mp[q]); else printf(-1 ); } return 0; }

相关新闻

WDW-10B电子式人造板万能试验机

WDW-10B电子式人造板万能试验机

WDW-10B电子式人造板万能试验机 一、主要功能、特点 1.功能:本试验机是针对人造板、饰面人造板进行各种理化性能试验测试研制生产的,满足GB17657-2022《人造板及饰面人造板理化性能试验方法》要求,能够进行表面胶合强度、静曲强度和弹性模量…

2026/7/3 15:47:28 阅读更多 →
【2026毕设选题】信息安全专业毕业设计选题指南:从网络攻防到Web安全

【2026毕设选题】信息安全专业毕业设计选题指南:从网络攻防到Web安全

目录前言毕设选题密码算法实现与分析身份认证与访问控制数据隐私保护区块链安全应用Web安全防护开题指导建议更多精选选题选题帮助最后前言 📅大四是整个大学期间最忙碌的时光,一边要忙着备考或实习为毕业后面临的就业升学做准备,一边要为毕业设计耗费大量精力。近几…

2026/7/5 6:45:19 阅读更多 →
什么是Redis的大Key和热Key?你们的项目一般是怎么解决的?

什么是Redis的大Key和热Key?你们的项目一般是怎么解决的?

一、首先我们要搞清楚大key和热key是什么。 1. 大Key 通常以Key的大小和Key中成员的数量来综合判定。比如Key本身的Value过大,一个String类型的Key,它的值为10 MB;Key中的成员数过多:一个ZSET类型的Key,它的成员数量为…

2026/7/5 7:55:24 阅读更多 →

最新新闻

基于Databricks的企业级AI Agent生产实践:从架构设计到部署运维

基于Databricks的企业级AI Agent生产实践:从架构设计到部署运维

🚀 30款热门AI模型一站整合,DeepSeek/GLM/Qwen 随心用,限时 5 折。 👉 点击领海量免费额度 如果你正在考虑将AI Agent引入企业生产环境,可能会面临这样的困境:在本地开发环境中跑得飞快的Agent原型&…

2026/7/6 3:42:09 阅读更多 →
飞书卡片表格渲染踩坑记:从 Markdown 到原生 table 组件的迁移实战

飞书卡片表格渲染踩坑记:从 Markdown 到原生 table 组件的迁移实战

背景 团队每日通过飞书推送项目晨报和日报,内容从项目管理平台实时拉取,包含任务统计、进度列表、风险项等多维数据,天然需要表格来承载。 最初的实现方案是飞书消息推送 纯文本,格式简陋,阅读体验差。于是决定升级为…

2026/7/6 3:40:09 阅读更多 →
构建AI毒舌投资人:用Prompt工程验证副业想法的可行性

构建AI毒舌投资人:用Prompt工程验证副业想法的可行性

🚀 30款热门AI模型一站整合,DeepSeek/GLM/Qwen 随心用,限时 5 折。 👉 点击领海量免费额度 最近在折腾各种 AI 工具时,我发现一个挺有意思的现象:很多人拿到一个强大的 AI 模型,比如 DeepSee…

2026/7/6 3:40:09 阅读更多 →
认识安企CMS-系统和模板文件结构

认识安企CMS-系统和模板文件结构

了解安企CMS安装后的完整目录结构,掌握主程序、配置文件、模板目录、附件目录、运行时数据等每个关键目录和文件的具体作用,方便后续日常维护和二次开发。安企CMS 安装后的完整目录结构概览,带你了解每个目录和文件的用途。一、顶层目录结构 …

2026/7/6 3:40:09 阅读更多 →
LB200倒置显微镜在梅毒螺旋体体外培养观察中的解决方案

LB200倒置显微镜在梅毒螺旋体体外培养观察中的解决方案

LB200倒置显微镜在梅毒螺旋体体外培养观察中的解决方案 梅毒螺旋体体外培养:微观世界的艰难跋涉 梅毒螺旋体是一种难以在体外环境中生存和繁殖的特殊病原体。其体外培养面临着很高的技术挑战,需要精确模拟人体内的复杂环境。在这一过程中,对培…

2026/7/6 3:38:09 阅读更多 →
PCB布局3大常见误区解析:从BGA阴影效应到40mil间距的工程取舍

PCB布局3大常见误区解析:从BGA阴影效应到40mil间距的工程取舍

PCB布局3大常见误区解析:从BGA阴影效应到40mil间距的工程取舍在硬件工程师的日常工作中,PCB布局往往是最容易被低估却又最影响最终产品性能的环节。许多初学者在完成原理图设计后,常常迫不及待地将元器件"塞"进电路板,却…

2026/7/6 3:38:09 阅读更多 →

日新闻

H2 与 MySQL 单元测试兼容性:5 个关键 SQL 语句差异与规避方案

H2 与 MySQL 单元测试兼容性:5 个关键 SQL 语句差异与规避方案

H2与MySQL单元测试兼容性:5个关键SQL语句差异与规避方案1. 单元测试中的数据库兼容性挑战在Java开发领域,单元测试是保证代码质量的重要环节。当应用涉及数据库操作时,测试环境的搭建往往成为开发者的痛点。H2数据库因其轻量级、内存模式和快…

2026/7/6 0:01:17 阅读更多 →
Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘

Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘

Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘 【免费下载链接】rbtray A fork of RBTray from http://sourceforge.net/p/rbtray/code/. 项目地址: https://gitcode.com/gh_mirrors/rb/rbtray 你是否厌倦了Windows任务栏上密密麻麻的图标&…

2026/7/6 0:01:17 阅读更多 →
Visual C++ 运行时库一键安装终极指南:告别DLL缺失烦恼

Visual C++ 运行时库一键安装终极指南:告别DLL缺失烦恼

Visual C 运行时库一键安装终极指南:告别DLL缺失烦恼 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist 你是否曾经遇到过这样的情况:下载了…

2026/7/6 0:05:19 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

月新闻