求助60分,RE(有没有什么更好的方法)

学术版

sunny12888 @ 2024-10-05 17:45:13

#include <bits/stdc++.h>
using namespace std;
const long long MAX=9223372036854775807;
int main(){
    int n,m,q;
    cin>>n>>m>>q;
    long long a[n],b[m];
    for(int i=0;i<n;i++)cin>>a[i];
    for(int i=0;i<m;i++)cin>>b[i];
    int l1[q],l2[q],r1[q],r2[q];
    for(int i=0;i<q;i++)
        cin>>l1[i]>>r1[i]>>l2[i]>>r2[i];
    long long c[n][m];
    for(int i=0;i<n;i++)
        for(int j=0;j<m;j++)
            c[i][j]=a[i]*b[j];
    for(int t=0;t<q;t++){
        long long tmax[r1[t]-l1[t]+1];
        memset(tmax,0,sizeof(tmax));
        int s=MAX;
        int pp=0;
        for(int i=l1[t]-1;i<r1[t];i++){
            long long int s=MAX;
            for(int j=l2[t]-1;j<r2[t];j++){
                s=min(s,c[i][j]);
            }

            tmax[pp]=s;
            pp++;
        }
        sort(tmax,tmax+r1[t]-l1[t]+1);
        cout<<tmax[r1[t]-l1[t]]<<endl;
    }
    return 0;

}

感谢各位大佬! 试题传送区

各位大佬,因为我等会有事,请将你的建议发过来即可,谢谢!


by sunny12888 @ 2024-10-05 17:56:56

RE变为TLE了

#include <bits/stdc++.h>
using namespace std;
const long long MAX=9223372036854775807;
int main(){
    int n,m,q;
    cin>>n>>m>>q;
    long long a[n],b[m];
    for(int i=0;i<n;i++)cin>>a[i];
    for(int i=0;i<m;i++)cin>>b[i];
    int l1[q],l2[q],r1[q],r2[q];
    for(int i=0;i<q;i++)
        cin>>l1[i]>>r1[i]>>l2[i]>>r2[i];
    //long long c[n][m];
    //for(int i=0;i<n;i++)
    //  for(int j=0;j<m;j++)
    //      c[i][j]=a[i]*b[j];
    for(int t=0;t<q;t++){
        long long tmax[r1[t]-l1[t]+1];
        memset(tmax,0,sizeof(tmax));
        int pp=0;
        for(int i=l1[t]-1;i<r1[t];i++){
            long long int s=MAX;
            for(int j=l2[t]-1;j<r2[t];j++){
                s=min(s,a[i]*b[j]);
            }

            tmax[pp]=s;
            pp++;
        }
        sort(tmax,tmax+r1[t]-l1[t]+1);
        cout<<tmax[r1[t]-l1[t]]<<endl;
    }

}

|