1 solutions

  • 0
    @ 2024-12-11 0:49:30

    C++ :

    #include<iostream>
    #include<algorithm>
    #include<cstdio>
    using namespace std;
    const int N(1005);
    int w[N],v[N];
    double f[N];
    int main()
    {
    //	freopen("convoy.in","r",stdin);
    //	freopen("convoy.out","w",stdout);
    	int W,s,n;
    	scanf("%d%d%d",&W,&s,&n);  //cin>>W>>s>>n;
    	w[0]=0;
    	for (int i=1;i<=n;i++)
    	{	
    		scanf("%d%d",&w[i],&v[i]);  //cin>>w[i]>>v[i];
    		w[i]+=w[i-1];
    	}
    	fill(f+1,f+n+1,0x7fffffff);
    	f[0]=0;
    	for (int i=1;i<=n;i++)	
    		for (int j=1,minv=v[i];j<=i&&w[i]-w[i-j]<=W;j++)
    			f[i]=min(f[i],f[i-j]+s/(double)(minv=min(minv,v[i-j+1])));
    	printf("%.1lf\n",f[n]*60);
    //	system("pause");
    	return 0;
    }			
    
    
    • 1

    Information

    ID
    739
    Time
    1000ms
    Memory
    128MiB
    Difficulty
    (None)
    Tags
    # Submissions
    0
    Accepted
    0
    Uploaded By