比赛 |
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;
}