zoukankan      html  css  js  c++  java
  • Codeforces Global Round 13 B

    Codeforces Global Round 13 B

    大意

    略...

    思路

    题目中有两个关键点

    1. 每一行仅有一个障碍
    2. 第0列和第1e6+1列不存在障碍

    考虑有几种移动情况

    1. 不用移动

      此时,对应的两行障碍的位置差值大于等于2

      因为第0行没有障碍,所以可以通过第0列走到对应位置,又因为每行仅有一个障碍且第1e6+1列不存在障碍,所以可以穿过差值大于等于2的两行障碍之间的格点到达第1e6+1列,然后走到终点

    2. min(u, v)

      此时,对应的两行障碍之间的位置差值等于1

    3. u+v

      此时,对应的两行障碍之间的差值等于0

    4. 2*v

      此时,对应的两行障碍之间的差值等于0

    容易发现,因为题述关键点,无论障碍位于什么位置,上述四种情况总成立。

    代码

    #include <map>
    #include <set>
    #include <cmath>
    #include <queue>
    #include <cstdio>
    #include <vector>
    #include <cstring>
    #include <iostream>
    #include <algorithm>
    using namespace std;
    
    #define ll long long
    #define ull unsigned long long
    #define cint const int&
    #define Pi acos(-1)
    
    const int mod = 1e9+7;
    const int inf_int = 0x7fffffff;
    const ll inf_ll = 0x7fffffffffffffff;
    const double ept = 1e-9;
    
    int t;
    int n, u, v;
    int a[100100];
    
    int main() {
        cin >> t;
        while(t--) {
            cin >> n >> u >> v;
            for(int i=1; i<=n; i++) cin >> a[i];
            int ans = inf_int;
            for(int i=1; i<=n; i++) {
                //between row
                if(i != n)
                if(a[i+1] != a[i]) {
                    ans = min(ans, u);
                } else {
                    ans = min(ans, u+v);
                }
    
                // between column
                if(i != n)
                if(a[i+1] != a[i]) {
                    if(abs(a[i+1] - a[i]) >= 2) ans = 0;
                    else {
                        ans = min(ans, v);
                    }
                } else ans = min(ans, 2*v);
            }
            cout << ans << endl;
        }
        return 0;
    }
    

    37min, -1

  • 相关阅读:
    skywalking源码改造
    skywalking包覆盖
    skywalking-拦截器实现(2)
    skywalking-拦截器实现(1)
    skywalking-过滤某些不需要被监控的接口
    扩展Spring-data-jpa导致注解@NamedEntityGraphs失效
    Skywalking日志收集功能使用:
    LRU缓存机制(基于LinkedHashMap)
    2020年总结
    Hbase简介
  • 原文地址:https://www.cnblogs.com/ullio/p/14494895.html
Copyright © 2011-2022 走看看