首页 > 其他 > 详细

[CF从零单排#21]339B - Xenia and Ringroad

时间:2020-07-30 23:36:02      阅读:122      评论:0      收藏:0      [点我收藏+]

题目来源:http://codeforces.com/problemset/problem/339/B

Xenia lives in a city that has n houses built along the main ringroad. The ringroad houses are numbered 1 through n in the clockwise order. The ringroad traffic is one way and also is clockwise.

Xenia has recently moved into the ringroad house number 1. As a result, she‘s got m things to do. In order to complete the i-th task, she needs to be in the house number a i and complete all tasks with numbers less than i. Initially, Xenia is in the house number 1, find the minimum time she needs to complete all her tasks if moving from a house to a neighboring one along the ringroad takes one unit of time.

Input
The first line contains two integers n and m (2?≤?n?≤?105,?1?≤?m?≤?105). The second line contains m integers a 1,?a 2,?...,?a m (1?≤?a i?≤?n). Note that Xenia can have multiple consecutive tasks in one house.

Output
Print a single integer — the time Xenia needs to complete all tasks.

Please, do not use the %lld specifier to read or write 64-bit integers in С++. It is preferred to use the cin, cout streams or the %I64d specifier.

Examples
input
4 3
3 2 3
output
6
inputCopy
4 3
2 3 3
output
2
Note
In the first test example the sequence of Xenia‘s moves along the ringroad looks as follows: 1?→?2?→?3?→?4?→?1?→?2?→?3. This is optimal sequence. So, she needs 6 time units.

题目大意:

有N个房子,有M次任务。每次任务是一个整数i(1~N),意思就是要去到第i个房子。房子可以看成是一个环路,一开始在1号房子,且只能顺时针走,每走一个房子用的时间是1,问这M个任务之后,最少用时多少?其中2<=n<=10^5, 1<=m<=10^5.

题目分析:

实际上就是对环进行处理,可以不用开数组,只需要知道上次的位置a,和本次的位置b,就可以求到a到b需要的时间。有两种情况,b>=a时,说明可以顺时针走下去,需要时间是b-a;如果b<a,也就是要走过一圈,回头才到,那么需要的时间就是b+n-a。将这m次操作的时间累加起来就可以了。

参考代码:

#include <bits/stdc++.h>
using namespace std;
int main(){
	int n, m, a, b;
	long long ans = 0;
	cin >> n >> m;
	a = 1;
	for(int i=1; i<=m; i++){
		cin >> b;
		if(b>=a)
			ans += b-a;
		else
			ans += b+n-a;
		a = b;  // 当前位置变成了下一次的前一个位置
	}
	cout << ans;
	return 0;
}

[CF从零单排#21]339B - Xenia and Ringroad

原文:https://www.cnblogs.com/gdgzliu/p/13406745.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!