比赛 2024暑假C班集训C 评测结果 AAATTTTTTTTTTTTTTTTA
题目名称 洛希的极限 最终得分 20
用户昵称 袁书杰 运行时间 79.992 s
代码语言 C++ 内存使用 3.24 MiB
提交时间 2024-07-12 09:49:55
显示代码纯文本
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. long long T,r1[500005],r2[500005],c1[500005],c2[500005],maxn,ans,n,m,q;
  4. bool check(long long x,long long y,long long xx,long long yy){
  5. for(long long i=1;i<=q;i++){
  6. if(x>=r1[i]&&xx<=r2[i]&&y>=c1[i]&&yy<=c2[i]){
  7. return true;
  8. }
  9. }
  10. return false;
  11. }
  12. void dfs(long long x,long long y,long long tot){
  13. if(tot==maxn) {
  14. ans++;
  15. ans%=1000000007;
  16. }
  17. if(tot>maxn){
  18. maxn=tot;
  19. ans=1;
  20. }
  21. for(long long i=x+1;i<=n;i++){
  22. for(long long j=y+1;j<=m;j++){
  23. if(check(x,y,i,j)){
  24. dfs(i,j,tot+1);
  25. }
  26. }
  27. }
  28. }
  29. int main() {
  30. freopen("roche.in","r",stdin);
  31. freopen("roche.out","w",stdout);
  32. ios::sync_with_stdio(false);
  33. cin.tie(0),cout.tie(0);
  34. cin>>T;
  35. while(T--){
  36. ans=0;
  37. maxn=0;
  38. cin>>n>>m>>q;
  39. for(long long i=1;i<=q;i++){
  40. cin>>r1[i]>>c1[i]>>r2[i]>>c2[i];
  41. }
  42. for(long long i=1;i<=n;i++){
  43. for(long long j=1;j<=m;j++){
  44. dfs(i,j,1);
  45. }
  46. }
  47. cout<<maxn<<" ";
  48. cout<<ans<<'\n';
  49. }
  50. return 0;
  51. }