好家伙 样例全过 数据全错
查看原帖
好家伙 样例全过 数据全错
320697
AMIRIOX無暝楼主2020/11/22 17:47

根据第一篇题解的part3不带优化的思路写的(没有照代码, 某神犇写游记里说看题解不要看代码), 题解说有80分, 这样例也全过了 但数据就WA

思路是枚举 i+1 -> i+k跳过的区间然后用1->n去减

#include <iostream>
#include <cstdio>
#define int long long
using namespace std;
const int maxn = 1e6+10;
const int inf = 0x7fffffff;
int n, a[maxn], k, ans=inf;
signed main() {
  scanf("%lld %lld", &n, &k);
  for(int i=1;i<n;i++) {
    scanf("%lld", &a[i]);
  }
  // (1)__1__(2)__2__(3)__3__(4)__4__(5)
  // (实际意义)
  // [i=2,k=2] 1->i ~ i+k->n
  // i+1 -> i+k
  // (1)____a[1]____(2)


  // 计算1->n
  int sum = 0;
  for(int i=1;i<n;i++) {
    sum+=a[i];
  }
  for(int i=1;i<n;i++) {
    if(i+k-1<n) {
      int insum=0;
      for(int j=i;j<=i+k-1;j++) {
        insum+=a[i];
      }
      ans=min(ans,sum-insum);
    }
  }
  printf("%lld", ans);
  return 0;
}

2020/11/22 17:47
加载中...