码迷,mamicode.com
首页 > 其他好文 > 详细

网易机试

时间:2018-08-11 19:37:23      阅读:144      评论:0      收藏:0      [点我收藏+]

标签:turn   std   课堂   技术分享   div   ret   图片   str   iostream   

一、

输入描述:

6:代表课堂时长(分钟);3:代表提醒后清醒的时长;

1 3 5 2 5 4 是 6 个时长对应的兴趣值

1 1 0 1 0 0 是对应时间清醒与否。

找出叫醒的时间点,使得课堂兴趣值最大。

例如在三分钟时叫醒,这样在3、4、5分钟内都会清醒;这样该课堂兴趣值为(1+3+5+2+5=16)。

技术分享图片

#include<iostream>
#include<algorithm>
#include<vector>

using namespace std; 

int Inte[100000];
int SlpOrCle[100000];
int SlpOrCle1[100000];

int SumInte1(int *a,int *b,int n) //求兴趣点; 
{
	int suminte1=0;
	for(int i=0;i<n;i++)
	{
		if(b[i]==1)
		    suminte1+=a[i];
	}
	return suminte1;
}

int main()
{
	int n,k;
	while(cin>>n>>k)
	{
		int Maxinte=0;
		for(int i=0;i<n;i++)
		    cin>>Inte[i];
		for(int i=0;i<n;i++)
		    cin>>SlpOrCle[i];
		for(int i=0;i<n;i++)
		    SlpOrCle1[i]=SlpOrCle[i];
		vector<int> Zeros;
		for(int i=0;i<n;i++)
		{
			if(SlpOrCle[i]==0)
			   Zeros.push_back(i); 
		}
		
        for(int i=0;i<Zeros.size();i++) 
        {
        	for(int j=Zeros[i];j<(Zeros[i]+k) and j<n;j++)
        	{
        		SlpOrCle1[j]=1;
        	}
        	
        	int a;
        	a=SumInte1(Inte,SlpOrCle1,n);
        	if(a>Maxinte)
        	{
        		Maxinte=a;
        	}
        	for(int i=0;i<n;i++)
		        SlpOrCle1[i]=SlpOrCle[i];
        }
        cout<<Maxinte;
	}
	return 0;
}  //6 3 1 3 5 2 5 4 1 1 0 1 0 0

  

 

网易机试

标签:turn   std   课堂   技术分享   div   ret   图片   str   iostream   

原文地址:https://www.cnblogs.com/ruo-li-suo-yi/p/9460671.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!