zoukankan      html  css  js  c++  java
  • Post Lamps CodeForces

    题意:

      在一个从0开始的连续区间上  放置几个小区间,使得这些小区间覆盖整个大区间,不同长度的小区间有不同的花费,其中有m个点,小区间的左端点不能放在这些点上

    解析:

      显然如果0是这m点中的一个 则无解

      然后就是标记上连续不能放的点  然后遍历每一个小区间  从0开始放 求花费最小值即可

    ·  注意最大值的设置

      代码都加了1,从1开始

      

    #include <bits/stdc++.h>
    using namespace std;
    const int maxn = 2000006, INF = 0x7fffffffffffffff;;
    typedef long long LL;
    int vis[maxn], hip[maxn];
    LL cost[maxn];
    int main()
    {
        int n, m, k, tmp;
        scanf("%d%d%d", &n, &m, &k);
        n++;
        for(int i=0; i<m; i++)
        {
            scanf("%d", &tmp);
            vis[tmp+1] = 1;
        }
        if(vis[1])
        {
            printf("-1
    ");
            return 0;
        }
        for(int i=1; i<=k; i++)
            scanf("%lld", &cost[i]);
        for(int i=1; i<=n; i++)
        {
            if(vis[i])
                hip[i] = hip[i-1];
            else
                hip[i] = i;
        }
        LL res = LLONG_MAX;
        for(int i=1; i<=k; i++)
        {
            int p = 1;
            LL sum = 1;
            while(1)
            {
                if(p + i >= n)
                {
                    LL ans = sum * cost[i];
                    res = min(res, ans);
                    break;
                }
                if(p == hip[p+i])
                    break;
                p = hip[p+i];
                sum++;
            }
        }
        if(res == LLONG_MAX)
            printf("-1
    ");
        else
            printf("%lld
    ", res);
    
    
        return 0;
    }
    自己选择的路,跪着也要走完。朋友们,虽然这个世界日益浮躁起来,只要能够为了当时纯粹的梦想和感动坚持努力下去,不管其它人怎么样,我们也能够保持自己的本色走下去。
  • 相关阅读:
    redmine工作流程总结
    IOS_OC_Category
    权限问题导致无法删除ftp文件
    Window下UDP(socket)接和收数据案例
    新一批创业者入局 谁来挖掘其身上的金矿
    java代理使用 apache ant实现文件压缩/解压缩
    ZOJ Monthly, November 2012
    【cocos2d-x 3.7 飞机大战】 决战南海I (十) 游戏主场景
    getAttribute for IE7
    Sahara中的数据模型
  • 原文地址:https://www.cnblogs.com/WTSRUVF/p/9545177.html
Copyright © 2011-2022 走看看