(新版)SJTU-OJ-1010. 逛商场

2023-12-05 13:30
文章标签 新版 oj 1010 sjtu 逛商场

本文主要是介绍(新版)SJTU-OJ-1010. 逛商场,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

题目描述

听说许多同学国庆假期因为小作业爆肝到很晚!

听说有同学因此在逛商场的时候睡着了!

于是,为了让这位同学很快地买到自己想要的东西,我们规定:

商场一共有n个货位,从入口到出口依次排列(别问我这是什么奇葩商场,就是有!),第i个货位有a_i件商品。而商场为了方便管理商品,给每件商品设定了一个编号。从商场入口走到这个商品一共有多少件商品,这个商品的编号就是多少。也就是说,第i个货位中的第j件商品的编号是(\sum_{k=1}^{i-1}a_k)+j.

该同学想要买m件商品,已知这m件商品的编号分别是c_1,\ldots,c_m,请你求出每件商品在第几个货位的第几个位置。

输入格式

第一行有两个整数,分别表示n,m.

第二行有n个整数,分别表示a_1,\ldots,a_n.

第三行有m个整数,分别表示c_1,\ldots,c_m​.

输出格式

一共有m行,每行有两个整数,第i行的第一个整数表示编号为c_i​的商品在第几个货位,第二个整数表示这件商品在这个货位的第几个位置。

样例输入

样例输入 1

5 5
1 2 3 4 5
1 2 4 9 15

样例输入 2

5 5
2 3 5 2 1
8 5 10 4 1

样例输出

样例输出 1

1 1
2 1
3 1
4 3
5 5

样例输出 2

3 3
2 3
3 5
2 2
1 1

数据范围

n,m\leq 10^5.

\forall 1\leq i \leq n, a_i\leq 10^2.

\forall 1\leq i \leq m, c_i\leq \sum_{j=1}^na_j.

题目吐槽

        国庆因为小作业,,嘶~

        我去年国庆可欢乐了,啥也没学。

        听说有同学因此在逛商场的时候睡着了!

        这是怎么做到的,那还不给我滚回寝室认真睡觉(不是)

        好扯的题目背景,明明知道学生这么辛苦,还出这种奇奇怪怪的题目。。。

        什么奇葩商场hhhh这也想得出来。。。我觉得这是菜市场而不是商场hhhh,淦!居然还找到图了

         这是正经的解析吗?

        嘶~

题目解答

        是时候正经啦,我先去oj那里考了一下古,发现了自己第一回写的代码,那真是一个无语啊

评测编号用户昵称题目名称评测状态运行时间内存分数语言提交时间
47847               1010.逛商场Wrong Answer5378ms23632KiB40C++Jul-10-2021 19:44:08

        考古结果:水平太差实在没办法hhhh,建议直接划走

Subtasks
Subtask1: 1 Score:10
Testpoint 1: Accepted
Time Used: 54ms Mem Used:22400KiB
Disk Usage: 0.01953125MiB
Info:
Subtask2: 2 Score:10
Testpoint 2: Accepted
Time Used: 20ms Mem Used:22420KiB
Disk Usage: 0.01953125MiB
Info:
Subtask3: 3 Score:10
Testpoint 3: Accepted
Time Used: 25ms Mem Used:22420KiB
Disk Usage: 0.01953125MiB
Info:
Subtask4: 4 Score:0
Testpoint 4: Wrong Answer
Time Used: 22ms Mem Used:22420KiB
Disk Usage: 0.01953125MiB
Info:
Subtask5: 5 Score:0
Testpoint 5: Wrong Answer
Time Used: 15ms Mem Used:22420KiB
Disk Usage: 0.01953125MiB
Info:
Subtask6: 6 Score:0
Testpoint 6: Wrong Answer
Time Used: 18ms Mem Used:22420KiB
Disk Usage: 0.01953125MiB
Info:
Subtask7: 7 Score:10
Testpoint 7: Accepted
Time Used: 22ms Mem Used:22420KiB
Disk Usage: 0.01953125MiB
Info:
Subtask8: 8 Score:0
Testpoint 8: Time Limit Exceed
Time Used: 1785ms Mem Used:22424KiB
Disk Usage: 0.0MiB
Info: Time Limit Exceeded
Subtask9: 9 Score:0
Testpoint 9: Time Limit Exceed
Time Used: 1785ms Mem Used:22424KiB
Disk Usage: 0.0MiB
Info: Time Limit Exceeded
Subtask10: 10 Score:0
Testpoint 10: Time Limit Exceed
Time Used: 1873ms Mem Used:22424KiB
Disk Usage: 0.0MiB
Info: Time Limit Exceeded

        还是先看看最暴力的枚举法吧(反正当时我二分法不是很熟练2333)

        明显看得出来这是从左往右寻找的笨方法,用前缀和的方法明显更好,如果不会请走这里的传送门:

        一维二维数组前缀和 参考案例 (新版)SJTU-OJ-1008. LSZ的雪地脚印

        还是看看对的代码吧,每次输入一个区域就把前面一项的加上输入的这一项,放在新的数组空间里面

#include <iostream>
using namespace std;
int main()
{int m, n,c;cin >> n >> m;long long int input[n+1] = {0}, a[n+1] = {0};int wuwu[m+1];for (int i = 1; i <= n; i++){cin >> input[i];a[i] = a[i - 1] + input[i];}for (int x = 1; x <= m; x++){cin >> wuwu[x];}for (int x = 1; x <= m; x++){int l = 1, r = n;int mid;//cin >> c;c=wuwu[x];l = 1;r = n;while (l<=r){mid = (l + r) >> 1;if (a[mid] >= c && a[mid - 1] < c){cout << mid << " " << c - a[mid - 1] << endl;break;}if (c > a[mid])l = mid + 1;if (c <= a[mid - 1])r = mid - 1;}// 这一段while是最核心的语句,目标是为了查找mid// 且mid满足a[mid] >= c && a[mid - 1] < c}system("pause");return 0;
}

        思考:关于这个l还有r是我最头大的地方,加一减一的emmm

        不妨这样理解,首先,while里面有一个if判断,如果if判断过不了,那肯定当前的那个mid不行,不满足条件,那就要修正区间,区间只有两个可能:

  1. [l,mid-1]
  2. [mid+1,r]

        解释到这里应该很清楚啦,那就对号入座叭,稍微思考一下就可以得出答案。

        完结~

        怀念一下逛了两页的商场

评测编号用户题目名称评测状态运行时间内存语言提交时间
479181010.逛商场Accepted627ms22432KiBC++Jul-10-2021 22:53:37
479161010.逛商场Accepted862ms22644KiBC++Jul-10-2021 22:52:55
478991010.逛商场Wrong Answer602ms22660KiBC++Jul-10-2021 22:10:21
478921010.逛商场Wrong Answer589ms22656KiBC++Jul-10-2021 22:01:45
478911010.逛商场Wrong Answer259ms23016KiBC++Jul-10-2021 22:01:07
478901010.逛商场Accepted547ms23012KiBC++Jul-10-2021 21:58:42
478881010.逛商场Wrong Answer565ms22644KiBC++Jul-10-2021 21:58:09
478871010.逛商场Wrong Answer552ms23008KiBC++Jul-10-2021 21:57:20
478861010.逛商场Wrong Answer856ms22652KiBC++Jul-10-2021 21:56:21
478841010.逛商场Accepted584ms23036KiBC++Jul-10-2021 21:49:33
478831010.逛商场Wrong Answer7974ms22424KiBC++Jul-10-2021 21:49:02
478821010.逛商场Wrong Answer7747ms23028KiBC++Jul-10-2021 21:47:24
478811010.逛商场Wrong Answer7644ms23024KiBC++Jul-10-2021 21:45:36
478801010.逛商场Accepted605ms22452KiBC++Jul-10-2021 21:44:12
478751010.逛商场Wrong Answer567ms23060KiBC++Jul-10-2021 21:32:39

        第二页逛商场

评测编号用户题目名称评测状态运行时间内存语言提交时间
478731010.逛商场Accepted578ms22432KiBC++Jul-10-2021 21:28:58
478721010.逛商场Compile Error0ms0KiBC++Jul-10-2021 21:27:33
478691010.逛商场Wrong Answer574ms23040KiBC++Jul-10-2021 21:25:08
478671010.逛商场Wrong Answer535ms22680KiBC++Jul-10-2021 21:20:05
478661010.逛商场Accepted765ms22420KiBC++Jul-10-2021 21:19:01
478651010.逛商场Wrong Answer520ms22440KiBC++Jul-10-2021 21:16:33
478641010.逛商场Wrong Answer597ms22424KiBC++Jul-10-2021 21:13:51
478611010.逛商场Wrong Answer581ms22424KiBC++Jul-10-2021 21:04:30
478601010.逛商场Time Limit Exceed9388ms23028KiBC++Jul-10-2021 20:43:13
478591010.逛商场Time Limit Exceed9384ms23024KiBC++Jul-10-2021 20:41:34
478581010.逛商场Time Limit Exceed10073ms22424KiBC++Jul-10-2021 20:40:38
478561010.逛商场Wrong Answer594ms23024KiBC++Jul-10-2021 20:37:48
478551010.逛商场Wrong Answer569ms22416KiBC++Jul-10-2021 20:31:39
478541010.逛商场Wrong Answer545ms23024KiBC++Jul-10-2021 20:27:58
478481010.逛商场Wrong Answer5625ms22424KiBC++Jul-10-2021 19:45:12

这篇关于(新版)SJTU-OJ-1010. 逛商场的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/457760

相关文章

哈理工OJ 2179(深搜)

组合 Time Limit: 1000 MSMemory Limit: 32768 K Total Submit: 7(5 users)Total Accepted: 6(5 users)Rating: Special Judge: No Description 给出一个正整数N,从集合{1,2,3..N} 中找出所有大小为k的子集, 并按照字典序从小到大输出。 Input 第一行是一个整

每日OJ_牛客_求和(递归深搜)

目录 牛客_求和(递归深搜) 解析代码 牛客_求和(递归深搜) 求和_好未来笔试题_牛客网 解析代码         递归中每次累加一个新的数,如果累加和大于等于目标,结束递归。此时如果累加和正好等于目标,则打印组合。向上回退搜索其它组合。此题本身就是一个搜索的过程,找到所有的组合。 #include <iostream>#include <cmath>#in

DevExpress WinForms v24.1新版亮点:功能区、数据编辑器全新升级

DevExpress WinForms拥有180+组件和UI库,能为Windows Forms平台创建具有影响力的业务解决方案。DevExpress WinForms能完美构建流畅、美观且易于使用的应用程序,无论是Office风格的界面,还是分析处理大批量的业务数据,它都能轻松胜任! DevExpress WinForms控件2024年第一个重大版本——v24.1全新发布,此版本对功能区、状态栏

HDU 1010 Tempter of the Bone (搜索)

OJ题目 : click here ~~ 大概题意 : 迷宫搜索。从起点到终点 ,不能回头 , 问能不能在恰好在T 时刻,准时到达终点。 本题充分体现了剪枝的重要性: 奇偶性剪枝: 可以把maze看成这样:  0 1 0 1 0 1  1 0 1 0 1 0  0 1 0 1 0 1  1 0 1 0 1 0  0 1 0 1 0 1  从为 0 的格子走一步,必然走向为 1 的格子

翻译Houdini官方对UE4新版插件的介绍:Houdini Engine for Unreal - V2

原视频:Houdini For Unreal - YouTube 目录 介绍0. 总览1. 简介HoudiniEngine2. UE4的HoudiniEngine - 第二版为什么要做“第二版” ?What's new? - 核心What's new? - 输出(1)What's new? - 输出(2)What's new? - 输入What's new? - 参数What's new?

Wyn 商业智能V8.0 新版本来袭,解锁“智造”的无限可能

Wyn商业智能V8.0 版本全新发布,聚焦制造业数字化升级痛点,深度赋能制造业数字化转型升级之路,从无缝集成物联网海量数据,到构建可视化实时分析、监控与预警大屏,全面打通生产制造全生命周期的数据脉络,为您开启工业智能新视界,一键解锁数字化工厂无限可能! Wyn商业智能 V8.0 版本亮点功能一览 1、支持MQTT等采集协议,接入物联网设备数据 全新引入”物联网数据”类型,支持MQTT,Web

新版iOS内购(IAP)完整流程

新版iOS内购(IAP)完整流程 苹果内购是用来做什么的?能不能吃? iOS内购(以下简称IAP)是你可以实现一个应用内购买各种物品的功能,最常见的就是游戏中购买的道具,比如钻石。 新版的iOS内购从申请、审核以及代码的书写都充满了恶意,下面来介绍一下IAP的基本流程和我们遇到的问题以及一些解决办法。 1.创建应用和IAP项目 首先进入苹果的iTunesConnection(http

OJ-0905

题目 示例1: 输入:10 10 56 34 99 1 87 8 99 3 255 6 99 5 255 4 99 7 255 2 99 9 255 213 4输出:99 示例2: 输入:10 10 255 34 0 1 255 8 0 3 255 6 0 5 255 4 0 7 255 2 0 9 255 213 5输出:255 import java.util.

每日OJ_牛客_Emacs计算器(逆波兰表达式)

目录 牛客_Emacs计算器(逆波兰表达式) 解析代码 牛客_Emacs计算器(逆波兰表达式) Emacs计算器__牛客网 解析代码 逆波兰表达式(后缀表达式)求值,需要借助栈,思路: 循环输入,获取逆波兰表达式,然后进行以下补助,直到测试完所有的测试用例: 遇到数字字符串,将该数字字符串转化为数字然后入栈。遇到操作符时,从栈顶取两个数字,然后进行该运算符所对应运算

WordPress 手动还原到旧版本与新版

WordPress 手动还原到旧版本与新版 WordPress后台一般都可以直接一键升级,但是也存在一些情况导致无法自动升级,比如说权限不足,还有就是一些文件的权限不一样,当然我们可以设置0777权限,但是不够安全。简单说一下 wordpress 手动还原到旧版本 和 WordPress 手动更新到最新版的方法,其实,操作都是一样的,可以说是手动更新到任意版本。