Codeforces Round #492 (Div. 2) [Thanks, uDebug!] — 赛后补题

Posted zgglj-com

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Codeforces Round #492 (Div. 2) [Thanks, uDebug!] — 赛后补题相关的知识,希望对你有一定的参考价值。

B. World Cup

题解:同一个位置的访问时间是 time = i - 1 + k * n(每秒向前移动一步,初始时刻是0),从每个位置的出去时间满足( i - 1 + k * n >= a[ i ] ),然后解出满足不等式的最小的k,代入( i - 1 + k * n),就是从该位置出去的时刻,那么答案就是所有位置中出去时间最早的位置。因为time的大小只和k有关,所以可以直接比较k的大小。

PS:2000人的题FST了,真是气啊。除法中向上取整,分母加上 n - 1,避免判断!!!!!

#include<bits/stdc++.h>
#define ll long long
#define P pair<int,int>
#define pb push_back
#define lson root << 1
#define INF (int)2e9 + 7
#define maxn (int)1e5 + 7
#define rson root << 1 | 1
#define LINF (unsigned long long int)1e18
#define mem(arry, in) memset(arry, in, sizeof(arry))
using namespace std;

int n;
int a[maxn];

int main()
{
    cin >> n;
    int res = INF, ans;
    for(int i = 1; i <= n; i++){
        cin >> a[i];
        int y = (a[i] - i + n) / n;
        if(res > y){
            res = y;
            ans = i;
        }
    }
    cout << ans << endl;
    return 0;
}

 

以上是关于Codeforces Round #492 (Div. 2) [Thanks, uDebug!] — 赛后补题的主要内容,如果未能解决你的问题,请参考以下文章

Codeforces Round #492 (Div. 2) [Thanks, uDebug!] — 赛后补题

Codeforces Round #436 E. Fire(背包dp+输出路径)

[ACM]Codeforces Round #534 (Div. 2)

Codeforces_492_E

CodeforcesCodeforces Round #492 (Div. 2) [Thanks, uDebug!] (Contest 996)

Codeforces Round #726 (Div. 2) B. Bad Boy(贪心)