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 ...
随机推荐
- 《计算机组成原理/CSAPP》网课总结(二)——编译原理基础
这部分是四月份的安排,拖到五一放假了,主要是对源码编译过程的一次总结,总的来说,大致可分为预编译.编译.汇编和链接四部分.这里简单记录一下: 一 概述 1.预处理 或者说是预编译,指的是在编译前需要做 ...
- position与float
position:fixed/absolute和float的关系:元素设置position:absolute / fixed后,float属性是没有效果的.对于position: absolute元素 ...
- MAUI候选版本3发布啦
我们很高兴发布.NET 多平台应用程序UI (.NET MAUI) 候选版本3,这个版本包含一系列新的改进.与以前的候选版本一样,RC3 包含在"上线"支持政策中,这意味着Micr ...
- Centos7部署Redis集群
Redis简介 Redis(Remote Dictionary Server)是完全开源的.遵守BSD协议的.高性能的Key-Value数据库. Redis与其他Key-Value缓存产品有一下三个特 ...
- git提交时写message的规范
message规范 angular示例 commit message(提交说明) git commit -m "写一行提交说明" # 跳出文本编辑器,写多行 git commit ...
- Element UI DatePicker 时间跨度限制在同一个月内
<el-date-picker :picker-options="pickerOptions" v-model="rangeTime" type=&quo ...
- 个人冲刺(二)——体温上报app(一阶段)
任务:完成了WenData类的编写,同时完成了SecondActivity.java SecondActivity.java package com.example.helloworld; impor ...
- 使用 Flutter 与 Firebase 制作 I/O 弹球游戏
文/ Very Good Ventures 团队,5 月 11 日发表于 Flutter 官方博客 为了今年的 Google I/O 大会,Flutter 团队使用 Flutter 以及 Fireba ...
- Primal_Dual 原始对偶
不是费用流都需要用 SPFA 吗. 众所周知,SPFA 去世了,然后网络流显然有负边.于是我们可以像 Johnson 全源最短路一样,给边加上势能,具体实现看我之前的 博客 啦. 然后对于每一次跑 D ...
- 给小白的 PG 容器化部署教程(下)
作者:王志斌 编辑:钟华龙 本文来自社区小伙伴 王志斌 的投稿.从小白的角度,带你一步步实现将 RadonDB PostgreSQL 集群部署到 Kubernetes 上.文章分为上下两部分,< ...