比赛 2024暑假C班集训C 评测结果 AAATTTTTTTTTTTTTTTTA
题目名称 洛希的极限 最终得分 20
用户昵称 袁书杰 运行时间 79.992 s
代码语言 C++ 内存使用 3.24 MiB
提交时间 2024-07-12 09:49:55
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
long long T,r1[500005],r2[500005],c1[500005],c2[500005],maxn,ans,n,m,q;
bool check(long long x,long long y,long long xx,long long yy){
    for(long long i=1;i<=q;i++){
        if(x>=r1[i]&&xx<=r2[i]&&y>=c1[i]&&yy<=c2[i]){
            return true;
        }
    }
    return false;
}
void dfs(long long x,long long y,long long tot){
    if(tot==maxn) {
        ans++;
        ans%=1000000007;
    }
    if(tot>maxn){
        maxn=tot;
        ans=1;
    }
    for(long long i=x+1;i<=n;i++){
        for(long long j=y+1;j<=m;j++){
            if(check(x,y,i,j)){
                dfs(i,j,tot+1);
            }
        }
    }
}
int main() {
	freopen("roche.in","r",stdin);
	freopen("roche.out","w",stdout);
	ios::sync_with_stdio(false);
	cin.tie(0),cout.tie(0);
	cin>>T;
	while(T--){
	    ans=0;
	    maxn=0;
	    cin>>n>>m>>q;
	    for(long long i=1;i<=q;i++){
	        cin>>r1[i]>>c1[i]>>r2[i]>>c2[i];
        }
        for(long long i=1;i<=n;i++){
            for(long long j=1;j<=m;j++){
                dfs(i,j,1);
            }
        }
        cout<<maxn<<" ";
        cout<<ans<<'\n';
    }
	return 0;
}