题目链接:[CF339BXenia and Ringroad]
(https://www.luogu.com.cn/problem/CF339B)
解题思路:
用一个队列,模拟这个人走到的房子,直到完成了所有任务;(不是正解)
CODE:
#include<iostream>
#include<queue>
using namespace std;
const int N = 1e6+10;
queue<int>q;
int a[N];
int main(){
int n,m;
cin>>n>>m;
int ans = 0;
for(int i = 1;i<=n;i++)
{
q.push(i);
}
for(int i = 1;i<=m;i++)
{
cin>>a[i];
}
for(int i = 1;i<=m;i++)
{
while(q.front()!=a[i])
{
int c = q.front();
q.pop();
q.push(c);
ans++;
}
}
cout<<ans;
return 0;
}
挂了。。。
那就稍微算一下吧
#include<iostream>
using namespace std;
int arr[100005];
int main() {
long long n, m;
cin >> n >> m; long long num = 0;
long long sun = 1;
for (int i = 0; i < m; i++) {
cin >> arr[i];
if (sun > arr[i]) { num += ((n - sun) + arr[i]); sun = arr[i]; }
else if (sun <= arr[i]) {
num += (arr[i] - sun); sun = arr[i];
}
}
cout << num;
}
pass