2 条题解

  • 1
    @ 2025-11-16 23:28:51
    #include <iostream>
    #include <algorithm>
    #include <cstring>
    #include <vector>
    #include <cstdio>
    #include <unordered_map>
    #include <queue>
    #include <deque>
    #include <cmath>
    #include <set>
    #include <stack>
    #include <map>
    using namespace std;
    #define int long long
    int a[5005];
    signed main()
    {
    	int t;
    	scanf("%lld",&t);
    	while(t--)
    	{
    		int n;
    		scanf("%lld",&n);
    		for(int i=1;i<=n;i++)
    		{
    			scanf("%lld",&a[i]);
    		}
    		int ans=0;
    		for(int i=2;i<n;i++)
    		{
    			int ans1=0;
    			int ans2=0;
    			for(int j=1;j<i;j++)
    			{
    				int h=min(a[i],a[j]);
    				ans1=max(ans1,(i-j)*h);
    			}
    			for(int j=i+1;j<=n;j++)
    			{
    				int h=min(a[i],a[j]);
    				ans2=max(ans2,(j-i)*h);
    			}
    			ans=max(ans,ans1+ans2);
    		}
    		printf("%lld\n",ans);
    	}
    	return 0;
    }
    
    • @ 2025-11-16 23:29:44

      数据范围不大,考虑O(n^2)暴力贪心去做

  • 0
    @ 2025-11-15 23:40:06

    #include<iostream> using namespace std; #define ll long long ll a[5005]; int main() { int t; cin>>t; while (t--) { int n; cin>>n; ll ans = 0; for (int i =1;i<=n;i++) { cin>>a[i]; } for ( int i =2;i<=n-1;i++) { ll s1 = 0,s2 = 0; for ( int j = 1;j<i;j++) { int len = i-j; ll qwq = min(a[i],a[j]); ll re = lenqwq; s1 = max(s1,re); } for ( int j =i+1;j<=n;j++) { int len = j-i; ll qwq = min(a[j],a[i]); ll re =lenqwq; s2 = max(s2,re); } ans = max(ans,s1+s2); } cout<<ans<<endl; } return 0;

    }

    • 1

    他们都不看好我,偏偏我也不争气

    信息

    ID
    1200
    时间
    1000ms
    内存
    256MiB
    难度
    8
    标签
    (无)
    递交数
    143
    已通过
    21
    上传者