2 条题解

  • 6
    @ 2024-8-8 19:13:24

    //给残疾杨哥抄的

    #include<bits/stdc++.h>

    using namespace std;

    struct ppppp

    {

    int width;
    
    int height;
    
    int fit;
    

    } block[999];

    int main ()

    { int n,i,j,l;

    scanf("%d",&n);
    
    for(i=0; i<n; i++)
    
    {
        scanf("%d%d",&block[i].width,&block[i].height);
        
        block[i].fit=block[i].width;
        
    }
    
    int maxxx=block[0].height;
    
    for(i=1; i<n; i++)
    
        if(block[i].height>maxxx)
        
            maxxx=block[i].height;
            
    int m;
    
    int flag=1;
    
    for(i=0; i<n; i++)
    
    {
        flag=1;
        
        for(j=i-1; j>=0&&flag==1; j--)
        
        {
            if(block[j].height<=block[i].height)
            
            {
            
                block[i].fit=block[j].width+block[i].fit;
                
            }
            
            else
            
                flag=0;
                
        }
        
        flag=1;
        
        for(j=i+1; j<n&&flag==1; j++)
        
        {
            if(block[j].height<=block[i].height)
            
            {
                block[i].fit=block[j].width+block[i].fit;
                
            }
            
            else
            
                flag=0;
                
        }
        
    }
    scanf("%d",&m);
    
    int minn=1000;
    
    int x;
    
    flag=0;
    
    for(i=0; i<n; i++)
    
    {
    
        if(block[i].fit>=m)
        
        {
        
            x=block[i].height+m;
            
            if(x<minn)
            
                minn=x;
                
            flag=1;
            
        }
        
    }
    
    if(flag==1)
    
        printf("%d\n",minn);
        
    else
    
        printf("%d\n",maxxx+m);
        
    return 0;
    

    }

    • -2
      @ 2024-8-8 19:45:35
      #include<iostream>
      using namespace std;
      int w[100],h[100];
      int n , a ,t=0,ans = 1e9+7;
      int main()
      {
      	cin>>n;
      	for(int i=1; i<=n; i++) cin>>w[i]>>h[i];
      	cin>>a;
      	for(int i=1;i<=n;i++) {
      		t=w[i];
      		for(int j =i-1;j>=1;j--)
      			if(h[j] <=h[i]) t+=w[j];
      			else break;
      		for(int j =i+1;j<=n;j++)
      			if(h[j]<=h[i]) t+=w[j];
      			else break;
      		if(ans>h[i]&& t>=a) ans = h[i];
      			
      	}
      	cout<<ans+a;
      }
      下面太复杂了
      • 1

      信息

      ID
      355
      时间
      1000ms
      内存
      256MiB
      难度
      7
      标签
      (无)
      递交数
      219
      已通过
      49
      上传者