题解 P5613 【[MtOI2019]黑蚊子多】

· · 题解

本蒟蒻一打开题解,看到了一些类似桶排序的高级做法,作为一道签到题,本蒟蒻随便写了一个模拟就AC了。

首先是一个有意思的东西

接下来该正经讲题了(敲黑板):

① 输入

for(int i=1;i<=k;i++)
    cin>>a[i];

② 判断:其中ans是走的次数,s是已经走过的台阶(s的初始值应设为0,我第一次设为1后样例没通过)

while(s<n){
    for(int i=1;i<=k;i++){
        if(a[i]==s)
            m++;
    }
    s+=m;
    ans++;
}

③ 输出

cout<<ans;

最后献上AC代码:

#include<bits/stdc++.h>
using namespace std;
int main(){
    int n,m,k,a[1001],ans=0,s=0;
    cin>>n>>m>>k;
    for(int i=1;i<=k;i++)
        cin>>a[i];
    while(s<n){
        for(int i=1;i<=k;i++){
            if(a[i]==s)
                m++;
        }
        s+=m;
        ans++;
    }
    cout<<ans;
    return 0;
} 

看到这里点个赞,评个论在走吧!