1 条题解

  • 0
    @ 2023-6-21 19:57:16

    C++ :

    #include<iostream>
    #include<cstdio>
    #include<cmath>
    #include<cstring>
    #include<algorithm>
    using namespace std;
    long long int n,m;
    long long int c[105][105],a[105],b[105];
    bool f(long long int k)
    {
    	long long int maxy=-1;
    	memset(c,-1,sizeof(c));
    	c[0][0]=0;
    	for(long long int i=1;i<=n;i++)
    	for(long long int j=0;j<=m;j++)
    	{
    		maxy=-1;
    		for(long long int l=max((long long)0,j-k/a[i]);l<=j;l++)
    		{
    			if(c[i-1][l]==-1) continue;
    			maxy=max(c[i-1][l]+(k-(j-l)*a[i])/b[i],maxy);
    		}
    		c[i][j]=maxy;
    	}
    	if(c[n][m]>=m) return 1;
    	return 0;
    }
    int main()
    {
    	long long int l,r,mid,i;
    	scanf("%lld%lld",&n,&m);
    	c[0][0]=0;
    	for(i=1;i<=n;i++)scanf("%lld%lld",&a[i],&b[i]);
    	r=1000000000;
    	l=1;
    	while(l<=r)
    	{
    		mid=(l+r)/2;
    		if(f(mid)) r=mid-1;
    		else l=mid+1;
    	}
    	printf("%lld\n",l);
    	return 0;
    } 
    
    • 1

    #500. 「邢台编程 β Round」ZQC 的拼图

    信息

    ID
    991
    时间
    1000ms
    内存
    512MiB
    难度
    (无)
    标签
    递交数
    0
    已通过
    0
    上传者