QFNU-ACM 2021.03.10个人赛 解题/补题报告

https://vjudge.net/contest/426643#status/805533348

A

第一遍看错题了qwqqqq

#include <cstdlib>
#include<bits/stdc++.h>
using namespace std;
int main( )
{
    int k,n,i,a[200],j;
    cin>>k;
    while(k--){
        cin>>n;
        int flag=4*n;
        cout<<flag;
        for(i=1;i<n;i++){
            flag-=2;
            cout<<" "<<flag;
        }
        cout<<endl;
    }
    return 0;
}

B

放一个炸弹b块钱,点燃一个炸弹a块钱,炸弹爆炸波及相邻两个,问最少花费多少所有炸弹打没

思路:判断把间隔填满的花费,和炸一次的花费比较,求较少的一个

#include <cstdlib>
#include<bits/stdc++.h>
using namespace std;
int main( )
{
    int k,n,i,a[200],j;
    cin>>k;
    while(k--){
       int a,b;
        cin>>a>>b;
        string s;
        cin>>s;
        int flag=0,cnt=0,cnt2=0,sum=0;
        for(i=0; i<s.length(); i++)
        {
            if(s[i]=='1'&&flag==0)
            {
                flag=1;
                sum+=a;
               // cout<<cnt<<endl;
            }
            else if(flag==1&& s[i]=='0')
            {
                cnt++;
            }
            else if(s[i]=='1'&&s[i-1]=='0')
            {


                sum+=min(cnt*b,a);
                cnt=0;
            }
        }
        cout<<sum<<endl;
    }
    return 0;
}
原文地址:https://www.cnblogs.com/a-specter/p/14530488.html