CF665B Shopping
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元大奖)
CF665B Shopping的更多相关文章
- Shopping(山东省第一届ACM省赛)
Shopping Time Limit: 1000MS Memory limit: 65536K 题目描述 Saya and Kudo go shopping together.You can ass ...
- sdutoj 2154 Shopping
http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=2154 Shopping Time Limit: ...
- Shopping(SPFA+DFS HDU3768)
Shopping Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Sub ...
- eclipse中 起动tomcat时报Multiple Contexts have a path of "/shopping"
eclipse中 启动tomcat时报Multiple Contexts have a path of "/shopping". 这个是由于你的server服务器中的server. ...
- 洛谷P2732 商店购物 Shopping Offers
P2732 商店购物 Shopping Offers 23通过 41提交 题目提供者该用户不存在 标签USACO 难度提高+/省选- 提交 讨论 题解 最新讨论 暂时没有讨论 题目背景 在商店中, ...
- UVALive - 6572 Shopping Malls floyd
题目链接: http://acm.hust.edu.cn/vjudge/problem/48416 Shopping Malls Time Limit: 3000MS 问题描述 We want to ...
- Codeforces Gym 100803C Shopping 贪心
Shopping 题目连接: http://codeforces.com/gym/100803/attachments Description Your friend will enjoy shopp ...
- Codeforces Round #332 (Div. 2) A. Patrick and Shopping 水题
A. Patrick and Shopping Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/5 ...
- poj 1170 Shopping Offers
Shopping Offers Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 4696 Accepted: 1967 D ...
随机推荐
- 五四青年节,今天要学习。汇总5道难度不高但可能遇到的JS手写编程题
壹 ❀ 引 时间一晃,今天已是五一假期最后一天了,没有出门,没有太多惊喜与意外.今天五四青年节,脑子里突然想起鲁迅先生以及悲欢并不相通的话,我的五一经历了什么呢,忍不住想说那大概是,父母教育孩子大声嚷 ...
- Blazor和Vue对比学习(基础1.2):模板语法和Razor语法
Vue使用模板语法,Blazor使用祖传的Razor语法,从逻辑和方向上看,两者极为相似,比如: 都基于HTML 都通过声明式地将组件实例的状态(数据/方法)绑定到呈现的DOM上 都通过指令实现更加丰 ...
- JavaScript 数据结构与算法3(链表)
学习数据结构的 git 代码地址: https://gitee.com/zhangning187/js-data-structure-study 1.链表 本章学习如何实现和使用链表这种动态的数据结构 ...
- c++:-7
上一节主要学习C++中的函数模版.数据结构以及排序查找操作:c++:-6,本节学习C++的范型程序设计和STL: 范型程序设计 编写不依赖于具体数据类型的程序 将算法从特定的数据结构中抽象出来,成为通 ...
- 管家婆软件工贸版(标准财务+进销存+生产管理)V18.0功能简介
管家婆软件工贸版(标准财务+进销存+生产管理)V18.0功能简介 管家婆 工贸版(标准财务+进销存+生产管理) 1.整体介绍 管家婆工贸版系列软件是针对国内中小型生产加工企业,将ERP管理思想与几十万 ...
- 好客租房19-react组件基础目标
1能够使用函数创建组件 2能够使用class创建组件 3能够给react元素绑定事件 4能够使用state和setstate 5能够处理事件中的this指向问题 6能够使用受控组件处理表单
- springcloud-- Alibaba-nacos--支持的几种服务消费方式
通过<Spring Cloud Alibaba基础教程:使用Nacos实现服务注册与发现>一文的学习,我们已经学会如何使用Nacos来实现服务的注册与发现,同时也介绍如何通过LoadBal ...
- 【Python - pip source】工欲善其事,必先利其器 - 不要让 pip install timeout 成为你的烦恼
目录 前言 一.原因 二.解决方法 2.1 思路 2.2 国内镜像源列举 2.3 具体解决过程 2.3.1 方法一:命令行(推荐) 2.3.2 方法二:创建文件 总结 前言 解决pip install ...
- 开源流程引擎camunda如何扩展
市场上基于Java语言的开源工作流引擎有:osworkflow.jbpm.activiti.flowable.camunda等,其中osworkflow.jbpm流程引擎已经过时,目前主流的开源 ...
- SpringBoot的浅浅配置和小整合
SpringBoot的浅浅配置和小整合 本文如题,就是浅浅记录一下学习的过程中一些过程,比较简单,并没有多少深度.谢谢! SpringBoot创建 从IDEA中新建项目或者模块.注意jdk版本,一般不 ...