标签: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