codeforces Educational Codeforces Round 41 (Rated for Div. 2) for B problem
2018-04-06 17:30
495 查看
找半天以为是 long long 会炸,经调试后发现并不是,但是为什么会输出结果0?
原因为基础逻辑错误。当没有睡觉的时候我的maxx并没有更新数值!!!#include <bits/stdc++.h>
using namespace std;
long long int n,k,a[2][100005],b[100005],c[100005];
int main()
{
long long int sum=0;
cin>>n>>k;
for(int i=0;i<n;i++)
{
cin>>a[0][i];
c[i]=a[0][i]+c[i-1];
}
for(int i=0;i<n;i++)
cin>>a[1][i];
for(int i=0;i<n;i++)
{
sum+=a[0][i]*a[1][i];
b[i]=a[0][i]*a[1][i]+b[i-1];
}
// printf("sum=%d\n",c[0]);
int flag=0;
long long int maxx=0;
for(int i=0;i<n;i++)
{
if(!a[1][i])
{
int loca=i+k-1;
long long int ans=0;
if(loca>=n)
loca=n-1;
ans=c[loca]-c[i-1]+sum-(b[loca]-b[i-1]);
// cout<<ans<<" "<<c[loca]-c[i-1]<<endl;
if(ans>maxx)
{
flag=1;
maxx=ans;
}
}
}
if(flag)
cout<<maxx;
else
cout<<c[n-1];
return 0;
}
原因为基础逻辑错误。当没有睡觉的时候我的maxx并没有更新数值!!!#include <bits/stdc++.h>
using namespace std;
long long int n,k,a[2][100005],b[100005],c[100005];
int main()
{
long long int sum=0;
cin>>n>>k;
for(int i=0;i<n;i++)
{
cin>>a[0][i];
c[i]=a[0][i]+c[i-1];
}
for(int i=0;i<n;i++)
cin>>a[1][i];
for(int i=0;i<n;i++)
{
sum+=a[0][i]*a[1][i];
b[i]=a[0][i]*a[1][i]+b[i-1];
}
// printf("sum=%d\n",c[0]);
int flag=0;
long long int maxx=0;
for(int i=0;i<n;i++)
{
if(!a[1][i])
{
int loca=i+k-1;
long long int ans=0;
if(loca>=n)
loca=n-1;
ans=c[loca]-c[i-1]+sum-(b[loca]-b[i-1]);
// cout<<ans<<" "<<c[loca]-c[i-1]<<endl;
if(ans>maxx)
{
flag=1;
maxx=ans;
}
}
}
if(flag)
cout<<maxx;
else
cout<<c[n-1];
return 0;
}
相关文章推荐
- Educational Codeforces Round 41 (Rated for Div. 2)
- Educational Codeforces Round 46 (Rated for Div. 2) D. Yet Another Problem On a Subsequence
- 【Educational Codeforces Round 38 (Rated for Div. 2)】 Problem A-D 题解
- 【Educational Codeforces Round 41 (Rated for Div. 2) D】Pair Of Lines
- [Codeforces]Educational Codeforces Round 37 (Rated for Div. 2)
- Educational Codeforces Round 37 (Rated for Div. 2) C. Swap Adjacent Elements
- 【Educational Codeforces Round 48 (Rated for Div. 2) C】 Vasya And The Mushrooms
- Educational Codeforces Round 33 (Rated for Div. 2) D题. Credit Card(贪心)
- Educational Codeforces Round 38 (Rated for Div. 2) D_Buy a Ticket_加源点Dijkstra
- Educational Codeforces Round 37 (Rated for Div. 2) E. Connected Components?(连通分量的个数,STL)
- Educational Codeforces Round 40 (Rated for Div. 2) F. Runner's Problem 前缀和求区间覆盖 矩阵快速幂优化DP 离散化
- Educational Codeforces Round 42 (Rated for Div. 2) D - Merge Equals
- codeforces Educational Codeforces Round 33 (Rated for Div. 2)B
- Educational Codeforces Round 33 (Rated for Div. 2) C
- Educational Codeforces Round 38 (Rated for Div. 2) C. Constructing Tests
- Educational Codeforces Round 35 (Rated for Div. 2) E Stack Sorting
- Educational Codeforces Round 39 (Rated for Div. 2) codeforces946 D. Timetable-数据处理+分组背包(处理炸裂)
- Educational Codeforces Round 37 (Rated for Div. 2)(A、B、C)
- Educational Codeforces Round 36 (Rated for Div. 2)C. Permute Digits(贪心)
- Educational Codeforces Round 33 (Rated for Div. 2)【C】【并查集】