CF665B Shopping

3dMax脚本类插件:不写 C++也能造“原生”工具 从plugin关键字到场景持久化,拆解 MAXScript 插件开发全流程! 阅读详情

CF665B Shopping

题目描述

Ayush is a cashier at the shopping center. Recently his department has started a ''click and collect" service which allows users to shop online.

The store contains $ k $ items. $ n $ customers have already used the above service. Each user paid for $ m $ items. Let $ a_{ij} $ denote the $ j $ -th item in the $ i $ -th person’s order.

Due to the space limitations all the items are arranged in one single row. When Ayush receives the $ i $ -th order he will find one by one all the items $ a_{ij} $ ( $ 1<=j<=m $ ) in the row. Let $ pos(x) $ denote the position of the item $ x $ in the row at the moment of its collection. Then Ayush takes time equal to $ pos(a_{i1})+pos(a_{i2})+…+pos(a_{im}) $ for the $ i $ -th customer.

When Ayush accesses the $ x $ -th element he keeps a new stock in the front of the row and takes away the $ x $ -th element. Thus the values are updating.

Your task is to calculate the total time it takes for Ayush to process all the orders.

You can assume that the market has endless stock.

输入格式

The first line contains three integers n n n , m m m and k k k ( 1 ≤ n , k ≤ 100 , 1 ≤ m ≤ k 1\le n,k\le 100,1\le m\le k 1≤n,k≤100,1≤m≤k ) — the number of users, the number of items each user wants to buy and the total number of items at the market.

The next line contains k k k distinct integers p l p_{l} pl​ ( 1 < = p l < = k 1<=p_{l}<=k 1<=pl​<=k ) denoting the initial positions of the items in the store. The items are numbered with integers from 1 1 1 to k k k .

Each of the next n n n lines contains m m m distinct integers a i j a_{ij} aij​ ( 1 < = a i j < = k 1<=a_{ij}<=k 1<=aij​<=k ) — the order of the i i i -th person.

输出格式

Print the only integer $ t $ — the total time needed for Ayush to process all the orders.

输入输出样例

样例输入1
2 2 5
3 4 1 2 5
1 5
3 1
样例输出1
14

说明/提示

Customer 1 1 1 wants the items 1 1 1 and 5 5 5 .

p o s ( 1 ) = 3 pos(1)=3 pos(1)=3 , so the new positions are: [ 1 , 3 , 4 , 2 , 5 ] [1,3,4,2,5] [1,3,4,2,5] .

p o s ( 5 ) = 5 pos(5)=5 pos(5)=5 , so the new positions are: [ 5 , 1 , 3 , 4 , 2 ] [5,1,3,4,2] [5,1,3,4,2] .

Time taken for the first customer is 3 + 5 = 8 3+5=8 3+5=8 .

Customer 2 2 2 wants the items 3 3 3 and 1 1 1 .

p o s ( 3 ) = 3 pos(3)=3 pos(3)=3 , so the new positions are: [ 3 , 5 , 1 , 4 , 2 ] [3,5,1,4,2] [3,5,1,4,2] .

p o s ( 1 ) = 3 pos(1)=3 pos(1)=3 , so the new positions are: [ 1 , 3 , 5 , 4 , 2 ] [1,3,5,4,2] [1,3,5,4,2] .

Time taken for the second customer is 3 + 3 = 6 3+3=6 3+3=6 .

Total time is 8 + 6 = 14 8+6=14 8+6=14 .

Formally p o s ( x ) pos(x) pos(x) is the index of x x x in the current row.

思路

题上首先给了三个数 n , m , k n,m,k n,m,k,然后在第二行里给出了 k k k 个数,然后又 n × m n\times m n×m 个操作,代表每一次把这个操作的数移动到第一位,其他的往后推,每次移动的时候有一个权值(从第一个数到第这个数的相差的位置数),问的是所有权值的和,数据量不大,直接模拟就好。

注

看到楼上用的 vector,我这里用数组。

Code

#include <bits/stdc++.h>
using namespace std;

int main()
{
	int n, m, k, x, ans = 0, a[105];
	scanf("%d %d %d", &n, &m, &k);
	for (register int i(1); i <= k; ++i)
		scanf("%d", &a[i]);
	for (register int i(1); i <= n * m; ++i)
	{
		scanf("%d", &x);
		register int j, l;
		for (j = 1; j <= k; ++j)
			if (a[j] == x)
				break;
		ans += j;
		for (l = j; l >= 2; --l)
			a[l] = a[l - 1];
		a[1] = x;
	}
	printf("%d\n", ans);
	return 0;
}

广告

绿树公司 - 官方网站:https://wangping-lvshu.github.io/LvshuNew/

绿树智能 - 官方网站:https://wangping-lvshu.github.io/LvshuZhineng/

(现在使用,人人均可获得300元大奖)

springboot整合sharding-jdbc实现分库分表详解 阅读详情

相关推荐

基于MySQL的京东用户行为分析

对京东用户行为的分析,利用AARRR模型进行分析。

SelenaSelena的博客 1909

codeforces665b 模拟

/**********************jibancanyang************************** *Author :jibancanyang *Created Time : 三 4/20 23:23:24 2016 *File Name : cf665b.cpp *Problem: *Get:简单模拟 ******************

JIBANCANYANG 538

IFIX5.8在Win10系统下的安装避坑指南

本文提供了IFIX5.8在Windows 10系统下的详细安装教程与避坑指南。针对常见的驱动缺失、UAC拦截及兼容性报错等问题,文章从安装前准备、分步安装流程到安装后配置与驱动修复,给出了系统性的解决方案,帮助工控从业者顺利完成部署。

f6g7h8i9j的博客 364

CodeForces 665B Shopping

B. Shopping time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output Ayush is a cashier at the shopping center. Recently his departmen...

weixin_30593443的博客 163

手把手教你用若依WMS搭建企业级仓库管理系统(Vue+Spring Boot实战)

本文提供了一份基于若依框架(RuoYi)快速搭建企业级仓库管理系统(WMS)的实战指南。详细介绍了从环境准备、项目初始化到核心功能模块(如入库流程、库存管理看板)深度定制的全过程,并涵盖Lodop打印集成、移动端PWA适配及生产环境Docker部署等高级主题,帮助开发者高效构建稳定可用的WMS系统。

weixin_29015899的博客 562

海康威视GigE工业相机的python调用demo

默认路径安装完成后,在路径C:\Program Files (x86)\MVS\Development\Samples\Python\BasicDemo下的BasicDemo.py中,海康威视官方提供了基本的调用方法,本文也是基于这个修改的。BasicDemo.py提供了通过枚举选择相机的方法,在官方的另一个DEMO:ConnectSpecCamera.py中提供了另一种不通过枚举,直接访问特定IP相机的方法,也可以参考。另外,如果每台相机都定义了唯一的用户定义名,也可以通过用户定义名来区分相机。

xulibo5828的博客 2107

CF665 div2 F题:Reverse and Swap 题解

题目链接:https://codeforces.com/contest/1401/problem/F 思路: 1. 结论一:多个reverse操作,交换顺序不影响结果 2. 结论二:Swap(k) = Reverse(K+1) +Reverse(K),这个结论也不难,这样可以省略掉swap操作的实现。 3. 用线段树 + lazy标记实现,然后各种位运算(哈哈,我最喜欢位运算了) 毕业到现在,至少一年多没怎么写题了,还是蛮顺利的,就是写的慢一点 #include<stdio.h>

vcvycy的专栏 522

深入解析FastDDS:SHM与DATA-SHARING传输层的性能对比与实现细节

本文深入对比了FastDDS中SHM与DATA-SHARING两种传输层的实现机制与性能差异。SHM采用端口化共享内存模型,存在两次数据拷贝;而DATA-SHARING通过共享历史实现真正的零拷贝,大幅降低延迟与CPU占用。文章结合实战测试数据,为机器人、自动驾驶等高实时性场景提供了关键的性能优化选型与配置指南。

weixin_28358083的博客 231

cf665c 简单贪心

/**********************jibancanyang************************** *Author :jibancanyang *Created Time : 三 4/20 23:23:24 2016 *File Name : cf665c.cpp *Problem:贪心 *Get:贪心大凭借自觉产生,但要使用要尽可能证明其

JIBANCANYANG 818

解读(DivideMix)DIVIDEMIX: LEARNING WITH NOISY LABELS AS SEMI-SUPERVISED LEARNING

这是Salesforce在今年年初出的一篇关于半监督学习的文章被ICLR 2020收录,目前还保持在SOTA状态。 文章主要做了两点工作: • 提出了一个co-divide方法。 • 利用label co-refinement 和co-guessing 改善之前的谷歌提出的MixMatch方法 1.co-divide方法 大概思路:同时训练两个网络,让每个网络在样本损失分布上去拟合GMM模型,并利用GMM模型,将训练数据分为标签数据和未标签数据,co-divide 使前面分的标签与未标签数据分别在

so 5041

UNet 改进(19):与ASPP结合的图像分割模型

这个代码实现了一个改进版的UNet模型,在传统的UNet架构基础上,引入了ASPP模块来增强模型捕获多尺度上下文信息的能力。​​UNet主干网络​​:经典的编码器-解码器结构,带有跳跃连接​​ASPP模块​​:位于瓶颈层,用于提取多尺度特征。

2401_82355416的博客 877

Codeforces 665B - Shopping

这道题太直白了,直接用双端队列就解决了。意思是#include #include #include #include using namespace std; typedef deque::iterator iterator_t; int main() { deque que; int n, m, k; scanf("%d%d%d", &n, &m, &k);

菜鸟 705

【LaTex】3.5 数据分析

简述了LaTex柱状图、饼图、折线图的画法。

你的指尖有改变世界的力量 5887

codeforces 665B Shopping

暴力 #include<cstdio> #include<cstring> #include<cmath> #include<vector> #include<map> #include<stack> #include<queue> #include<string> #includ...

weixin_34138139的博客 129

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

codeforces 665B B. Shopping(水题)

题目链接: B. Shopping time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output Ayush is a cashier at the shopping center. Rec...

weixin_30583563的博客 211

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

深挖C++:类和对象(中)

(先进后出)

xys_678的博客 222

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

选型笔记:Type‑C 扩展坞方案评估|DP1.4 转 HDMI2.0 桥接芯片 GSV2201S@ACP

本文记录 GSV2201S 这款 DP1.4a 转 HDMI2.0 桥接芯片评估,梳理视频、HDCP、PD 集成能力,总结 Type‑C 转接 Dongle、扩展坞方案的适配边界,以及差分走线、PD 时序、HDCP 握手等高频调试问题,为 C 口视频转接方案选型提供参考。

ACP广源盛的博客 218

ThunderKittens 深度解析:一个不基于 MLIR 的 C++ 模板 GPU DSL

Triton 是"让更多人能写 GPU kernel",ThunderKittens 是"让会写的人写得更爽"。前者用 MLIR 换易用性,后者用 C++ 模板换可控性。它们不是替代关系,而是覆盖了 GPU 编程光谱的两端。ThunderKittens 的出现,本质上是对"GPU DSL 必须基于 MLIR"这一默认假设的挑战。编译期类型系统本身就可以是一个强大的 DSL 基础设施,不需要中间 IR,不需要黑盒 pass,也能实现 tile 级抽象和零运行时开销。

Maxwell_Newton的博客 333

C++移动构造函数详解

移动构造函数是C++11引入的一种特殊构造函数,用于从临时对象(右值)"窃取"资源来初始化新对象,而不是进行昂贵的深拷贝。char* data;public:// 移动构造函数:参数是右值引用 &&// 关键:把源对象的资源置空。

拒绝AI文,努力在AI时代写出感动人心的好文章 388

蓝桥杯·全国青少年信息素养大赛·电子学会Python/C++考级:倍增法求最近公共祖先LCA解析

蓝桥杯报名正在火热进行(软件赛报名 2026-10-08—12-18,省赛 2027-04-10),电子学会 12 月软件编程(C/C++ 一级至十级、Python 一级至六级)考级报名也已开启(9/23—12/2),全国青少年信息素养大赛算法应用主题赛同步推进——把 LCA 这个模板练熟,正是冲刺这些赛事树型考点的关键一步。所谓「最近公共祖先」:在一棵以某个节点为根的树里,两个节点 u、v 向上追溯,最早交汇的那个祖先就叫它们的 LCA。比如家谱里,你和你表哥最近的共同长辈就是你们的祖父。

IT_Scratch的博客 534

【C语言】字符与字符串函数

C语言中字符串为以\0结尾的字符数组,标准库函数基于此约定。本文解析字符串内存布局,详解ctype.h与string.h中字符分类、长度计算、拷贝、比较等函数的使用要点,强调长度判断与越界风险,最后通过命令行待办事项示例整合fgets、sscanf、strncpy、strcmp,展示实际应用中的关键细节。

记录在学习过程中学到的知识 343

C++ 多态详解:作用、原理与实战用法

多态是C++面向对象的核心特性,通过虚函数实现运行期动态绑定,使同一接口在不同对象上表现出不同行为。其核心作用包括统一接口、提升可扩展性、降低耦合、支持运行时分派与批量处理。实现依赖虚函数表(vtable)和虚指针(vptr),需注意虚析构函数、对象切片等陷阱。相比编译期多态(模板),运行期多态灵活性高但有调用开销。合理结合两者,可兼顾代码的灵活性与性能,是构建可扩展、低耦合系统的关键。

2402_85743155的博客 377

C++ 函数模版

模板参数:● template ,T 就是类型占位符,名字可以自定义,习惯用T● 占位符可以在函数返回值、形参、函数内部当作类型使用使用要点模板代码一般写在头文件:编译器需要看到完整模板源码,才能在每个编译单元完成实例化全局函数、类内成员函数都可以写成模板实例化发生在编译阶段,不是运行时隐式实例化:调用时编译器自动推导实参类型,生成对应版本函数。

2501_94041724的博客 302

C++ 运行时多态与虚函数机制全面剖析【面试重点】

构成C++ 运行时多态必须是基类的指针或者引用调用虚函数。被调用的函数必须是虚函数,并且派生类必须对该虚函数完成重写/覆盖(Override)。只有基类的指针或引用才能既指向基类对象,又指向派生类对象(切片机制);而只有完成了虚函数重写,派生类与基类才具备不同的函数行为,达到“指向谁就调用谁”的效果。在类成员函数的前面加上virtual关键字修饰,该成员函数就成为了虚函数。public:// 成员函数前加 virtual 修饰,声明为虚函数。

Fuyo_0209的博客 435

C++ 求抛物线的顶点、焦点和准线(Finding the vertex, focus and directrix of a parabola)

已知抛物线方程 $ y = ax^2 + bx + c $,可利用公式求其顶点、焦点和准线。顶点为 $ \left( -\frac{b}{2a}, \frac{4ac - b^2}{4a} \right) $,焦点为 $ \left( -\frac{b}{2a}, \frac{4ac - b^2 + 1}{4a} \right) $,准线方程为 $ y = c - \frac{b^2 + 1}{4a} $。以 $ a=5, b=3, c=2 $ 为例,计算得顶点 $(-0.3, 1.55)$,焦点 $(-0

csdn_aspnet的专栏,请点击博客主页右上角三个点中的私信联系 163
上一篇: P2183 [国家集训队]【一本通提高组合数学】礼物
下一篇: [HNOI2009]【一本通提高组合数学】有趣的数列
lvshu · 绿树
博客等级 码龄7年 44粉丝 98原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lvshu · 绿树

非常感谢您的搭讪

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值