文章

2

粉丝

73

获赞

0

访问

733

头像
街灯 题解:
P1739 华东师范大学2020年机试题
发布于2024年8月24日 11:48
阅读数 329

数组标记模拟


#include<bits/stdc++.h>
using namespace std;

int main()
{
	int n,m,k;

	while(cin>>n>>m>>k)
	{
		int sum =0;
		int x;
		//记录需要被照亮的n米点 
		int a[n+1] ={0};
		for(int i=0;i<m;i++)
		{
			cin>>x;
		//标记被照亮的点为1 
		 for (int j = max(1, x - k); j <= min(n, x + k); j++)
            {
                a[j] = 1;
            }
			
		}
		  
		int l=1; 
        while(l<=n)
        {
        	//每次要初始化记录未被照亮的路的长度count 
        	int count = 0;
        	//检查没被照亮的路即a[l]==0 
        	while(l<=n&&a[l]==0)
        	{
        		l++;
        		count++;
        		
			}
			//ceil(每段未被照亮的路的长度/(2*k+1)),要向上取整 
			sum += (count + 2 * k) / (2 * k + 1);
			l++; 
		}
		
		cout<<sum<<endl;
		
	}
	
	
	
	return 0;
}

 

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发