top1编程
← 返回题目
题解

【基础】取数

1 条题解

  • 0
    @ 2026-7-28 23:04:24
    #include <bits/stdc++.h>
    using namespace std;
    int a[2005][2005],s=INT_MAX,n,k;
    int main()
    {
    	//要取某个点就要把该点上面以及左上方和右上方的数全部拿走,
    	//会发现是近似平行四边形,平行四边形的面积<=k说明里面的数都有可能被取到。
    	//找在平行四边形面积内最小的数
    	cin>>n>>k;
    	for(int i=1;i<=n;i++)
    	{
    		for(int j=1;j<=i;j++)
    		{
    			cin>>a[i][j];
    			if(j*(i-j+1)<=k)
    			{
    				s=min(s,a[i][j]);
    			}
    		}
    	}
    	cout<<s<<endl;
    	return 0; 
    }
    
    • 1