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