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