zoukankan      html  css  js  c++  java
  • CF1443B Saving the City

    传送门:https://codeforces.com/contest/1443/problem/B

    题意:

    一条路上埋着一些地雷,现在需要引爆这些地雷,引爆一个地雷花费a块钱,与它相邻的所有的地雷都会被引爆。埋一个地雷花费b块钱,求最小花费。

    题解:

    扫一遍不相邻的地雷群,它们之间相隔多少个位置,对于每个地雷群,判断一下直接炸了划算还是往里面填地雷和别的连起来划算。

    代码:

    #include<bits/stdc++.h>
    using namespace std;
    char mines[100005];
    struct List{
        int sum;
        //int next;
        int nextcost;
    }mapp[100005];
    int main(){
        int t;
        scanf("%d",&t);
        while(t--){
            int a,b;
            scanf("%d %d",&a,&b);
            scanf("%s",mines);
            int l=strlen(mines);
            memset(mapp,0,sizeof mapp);
            int k=0;
            for(int i=0;i<l;i++){
                if(mines[i]=='0'){
                    mapp[k].nextcost++;
                }else if(mines[i]=='1' && (mapp[k].nextcost>0 || i==0)){
                    //mapp[k].next=++k;
                    k++;
                    mapp[k].sum++;
                }else{
                    mapp[k].sum++;
                    ;
                }
            }
            int ans=0;
            for(int i=1;i<k;i++){
                if(mapp[i].sum>0)ans+=a;
                if(mapp[i].nextcost*b<a){
                    ans+=mapp[i].nextcost*b;
                    mapp[i+1].sum=0;
                }
            }
            if(mapp[k].sum>0)ans+=a;
            printf("%d
    ",ans);
        }
        return 0;
    }
  • 相关阅读:
    DOM基础(二)
    DOM基础(一)
    JS入门(五)
    linux的用法
    一道关于运行顺序题
    vue框架
    HTML的知识点
    从队友那偷来的主席树模板(静态区间第k小)
    网络流基础模型——任务分配模型(HDU 3572)
    HDU 5521 Meeting(建图思维)
  • 原文地址:https://www.cnblogs.com/isakovsky/p/13964063.html
Copyright © 2011-2022 走看看