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的更多相关文章

  1. Shopping(山东省第一届ACM省赛)

    Shopping Time Limit: 1000MS Memory limit: 65536K 题目描述 Saya and Kudo go shopping together.You can ass ...

  2. sdutoj 2154 Shopping

    http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=2154 Shopping Time Limit: ...

  3. Shopping(SPFA+DFS HDU3768)

    Shopping Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Sub ...

  4. eclipse中 起动tomcat时报Multiple Contexts have a path of "/shopping"

    eclipse中 启动tomcat时报Multiple Contexts have a path of "/shopping". 这个是由于你的server服务器中的server. ...

  5. 洛谷P2732 商店购物 Shopping Offers

    P2732 商店购物 Shopping Offers 23通过 41提交 题目提供者该用户不存在 标签USACO 难度提高+/省选- 提交  讨论  题解 最新讨论 暂时没有讨论 题目背景 在商店中, ...

  6. UVALive - 6572 Shopping Malls floyd

    题目链接: http://acm.hust.edu.cn/vjudge/problem/48416 Shopping Malls Time Limit: 3000MS 问题描述 We want to ...

  7. Codeforces Gym 100803C Shopping 贪心

    Shopping 题目连接: http://codeforces.com/gym/100803/attachments Description Your friend will enjoy shopp ...

  8. 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 ...

  9. poj 1170 Shopping Offers

    Shopping Offers Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 4696   Accepted: 1967 D ...

随机推荐

  1. Java — 面向对象

    目录 一.类和对象 二.方法 三.封装 四.继承 五.多态 六.final 七.static 八.抽象类 九.接口 十.内部类 一.类和对象 简介:类是对事物的一种描述,对象则为具体存在的事物. 类的 ...

  2. redo log 和 binlog 的一些总结

    1 redo log 和 binlog 的区别 redo log 是 InnoDB 引擎特有的:binlog 是 MySQL 的 Server 层实现的,所有引擎都可以使用. redo log 是物理 ...

  3. C# Thread.Sleep 不精准的问题以及解决方案

    1.问题 最近在写一个熔断的 SDK,其中一种策略是根据慢请求来进行熔断. 我们在测试的时候,在对应 API 里面采用了 Thread.Sleep(ms) 来模拟慢请求. 设置的慢请求阈值是 RT 1 ...

  4. Oracle 19c单实例部署

    目录 Oracle 19c单实例部署: 1.配置yum: 2.安装rpm包: 3.设置hostname: 4.配置hostname解析: 5.配置时钟同步服务(ntp): 6.检查及配置内核参数: 7 ...

  5. python操作MySQL,SQL注入的问题,SQL语句补充,视图触发器存储过程,事务,流程控制,函数

    python操作MySQL 使用过程: 引用API模块 获取与数据库的连接 执行sql语句与存储过程 关闭数据库连接 由于能操作MySQL的模块是第三方模块,我们需要pip安装. pip3 insta ...

  6. 多线程05:unique_lock详解

    unique_lock详解 一.unique_lock取代lock_guard unique_lock是个类模板,实际应用中,一般lock_guard(推荐使用):lock_guard取代了mutex ...

  7. 4.0 vue绑定dom属性和函数的方法

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  8. nvm安装与使用及乱码问题

    前端开发工作中经常负责多个项目(新项目.多年的老项目及团队合作项目),经常会遇到npm install安装依赖包或者启动本地服务时依赖报错的情况,大多数是因为NodeJS和npm与依赖之间版本的问题, ...

  9. camunda如何调用HTTP REST(Service Task)服务节点

    ​ Camunda中的Service Task(服务任务)用于调用服务.在Camunda中,可以通过调用本地Java代码.外部工作项.web服务形式实现的逻辑来完成的. 本文重点描述如何使用web服务 ...

  10. css设置元素背景透明度的2种方式

    更新记录 本文迁移自Panda666原博客,原发布时间:2021年7月9日. 设置元素的背景的透明度可以使用2种方式:方式1:opacity属性.方式2:使用rgba值.两种方式有一点差异,opaci ...