zoukankan      html  css  js  c++  java
  • CF965D Solution

    题目链接

    题解

    答案最大是所有长度为\(l\)区间中的最小石子数,因为此时石子数最小的长度为\(l\)的区间石子数为\(0\),如果继续增加青蛙则无法越过该区间。而这样的答案是一定可以被构造出来的:设区间\([i,i+l-1],[i+1,i+l]\),令区间\([i+1,i+l-1]\)的青蛙位置不变,而\(i\)处的青蛙跃向\(i+l\)处。因为所有区间均可容纳最小石子数的青蛙,因此\(i+l\)一定可以承载\(i\)处的青蛙。具体实现利用前缀和即可。

    #include<bits/stdc++.h>
    using namespace std;
    const int N=1e5+10,inf=0x3f3f3f3f;
    int a[N],sum[N];//sum:前缀和
    int main()
    {
    	int w,l,ans=inf;
    	scanf("%d%d",&w,&l);
    	for(int i=1;i<w;i++) {scanf("%d",&a[i]); sum[i]=sum[i-1]+a[i];}
    	for(int i=l;i<w;i++) ans=min(ans,sum[i]-sum[i-l]);
    	printf("%d",ans);
    	return 0;
    }
    
  • 相关阅读:
    Rx
    linux rpm 安装包制作
    kamctl start
    dedicated bearer
    Kamailio
    EPC sequence
    TD-LTE技术原理与系统设计
    SS7
    SCTP
    GTP
  • 原文地址:https://www.cnblogs.com/violetholmes/p/14364011.html
Copyright © 2011-2022 走看看