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


    题目传送门

    一道模拟题目,签到送分题。

    您需要的知识

    1.while循环

    2.for循环

    3.一维数组

    思路:

    Step 1:按题目要求,定义a[],n,m,k

        int a[10001];
        int n,m,k;
    

    Step 2:输入n,m,k

    	cin>>n>>m>>k;
    

    Step 3:对于 (60\%) 的数据,(k=0)
    所以先来个判断就能得到60分
    如果k==0就输出n/m向上取整
    小学三年级的知识……

    	if(k==0)
    	{
    		if(n%m==0)cout<<n/m;
    		else cout<<n/m+1;
    	}
    

    如果你写到这,就可以得到60分了!

    Step 4:如果不是(k=0)怎么办
    先加一个else

        else
        {
    
        }
    

    Step 5:定义2个变量,stecnt,都归零

    	int cnt=0;
    	int ste=0;
    

    这里可以连着写

    Step 6:输入a[i]
    不赘述了

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

    Step 7:按照题目方法模拟,也不难,while+for即可

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

    Step 8:输出cnt,别输出错了!

    	cout<<cnt;
    

    Step 9:

    	return 0;
    

    满分代码

    #include <bits/stdc++.h>
    #define ll long long
    using namespace std;
    int a[10001];
    int main()
    {
    	int n,m,k;
    	cin>>n>>m>>k;
    	if(k==0)
    	{
    		if(n%m==0)cout<<n/m;
    		else cout<<n/m+1;
    	}
    	else
    	{
    		int cnt=0;
    		int ste=0;
    		for(int i=1;i<=k;i++)
    			cin>>a[i];
    		while(ste<n)
    		{
    			cnt+=1;
    			ste+=m;
    			for(int i=1;i<=k;i++)
    				if(a[i]==ste)m++;
    		}
    		cout<<cnt;
    	}
    	return 0;
    }
    
  • 相关阅读:
    UIWebView控件中 字体大小和字体样式的修改
    IOS statusBarStyle 设置
    SSZipArchive解压失败的原因
    uiimageview 的 animation 动画
    App网络管理
    系统日志输出工具类
    软键盘管理
    获取App应用信息
    Activity管理类
    SharePreference工具类
  • 原文地址:https://www.cnblogs.com/tearing/p/12371852.html
Copyright © 2020-2023  润新知