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; }