• 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

  • 相关阅读:
    mac os 虚拟机安装
    linux 安装Swagger(swagger-editor , swagger-ui)
    Centos6.5安装pip命令以及中途遇到的问题
    CentOS6.5 下将 Python2.6.6 升级到Python3.5
    要么忙着活,要么忙着死
    在CentOS6.8下安装Docker
    Elasticsearch 不同的搜索类型之间的区别
    解决 Python shell 中 Delete/Backspace 键乱码问题
    Java 反射机制
    Spring Security Oauth2 的配置
  • 原文地址:https://www.cnblogs.com/ullio/p/14494895.html
Copyright © 2020-2023  润新知