1 条题解

  • 0
    @ 2023-8-16 18:19:25
    #include <algorithm>
    #include <iostream>
    #include <cstdlib>
    #include <cstring>
    #include <string>
    #include <cstdio>
    #include <queue>
    #include <ctime>
    using namespace std;
    int i,j,k,l,m,n,a[55000],r,mid,ans,s;
    int check()
    {
      	int i,j,k=0;
      	for (i=0,j=1;j<=n;j++)
      	  {
      	  	if (a[j]-a[i]<mid)
      	  	  {
      	  	  	k++;continue;
    		  }
    		i=j;
    	  }
    	if (s-a[i]<mid||k>m) return 0;
    	return 1;
      }
    int main()
    {
      	scanf("%d%d%d",&s,&n,&m);
      	for (i=1;i<=n;i++) scanf("%d",&a[i]);
      	sort(a+1,a+n+1);
      	for (l=0,r=s;l<=r;)
      	  {
      	  	mid=(l+r)/2;
      	  	if (check()) l=mid+1,ans=mid;else r=mid-1;
          }
        printf("%d",ans);
        return 0;
    }
    
    • 1

    [Usaco2006 Dec]River Hopscotch 跳石子

    信息

    ID
    1650
    时间
    1000ms
    内存
    256MiB
    难度
    10
    标签
    递交数
    6
    已通过
    5
    上传者