zoukankan      html  css  js  c++  java
  • P2241 统计方形(数据加强版)

    https://www.luogu.com.cn/problem/P2241

    方法一:暴力(30分)分少总比0分强,其他测试点都显示TLE

     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 
     4 int main()
     5 {
     6     int n, m, ans_zfx=0, ans_cfx=0;
     7     int x, y, chang, kuan, xx, yy;
     8     cin>>n>>m;
     9     for(x=1; x<=n; x++)                             //枚举每个矩形的左上坐标点x 
    10         for(y=1; y<=m; y++){                        //枚举每个矩形的左上坐标点y 
    11             for(chang=1; chang<=n; chang++)
    12                 for(kuan=1; kuan<=m; kuan++){      //枚举可以累加的长度
    13                     xx=x+chang; yy=y+kuan;         //枚举可以累加的宽度
    14                     if(xx<=n+1 && yy<=m+1){        //判断矩形右下角点坐标是否合法 
    15                         if(chang==kuan)ans_zfx++;  //判断是正方形还是长方形 
    16                         else ans_cfx++;
    17                     }
    18                 }        
    19         }
    20     cout<<ans_zfx<<" "<<ans_cfx;
    21     return 0;
    22  } 

    当然暴力枚举也可以通过枚举两个点的坐标来计算是正方形还是长方形,结果也是一样的,因为四重循环嵌套,时间复杂度是(O(n^4)=5000^4,所以会TLE)

     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 
     4 int main()
     5 {
     6     int n, m, ans_zfx=0, ans_cfx=0;
     7     int x, y, chang, kuan, xx, yy;
     8     cin>>n>>m;
     9     for(x=1; x<=n; x++)                             //枚举每个矩形的左上坐标点x 
    10         for(y=1; y<=m; y++){                        //枚举每个矩形的左上坐标点y 
    11             for(xx=x+1; xx<=n+1; xx++)               //举每个矩形的右下坐标点xx
    12                 for(yy=y+1; yy<=m+1; yy++){          //枚举每个矩形的右下坐标点yy  
    13                     chang=xx-x; kuan=yy-y;           //计算两个坐标点形成的矩形长和宽  
    14                     if(chang<=n && kuan<=m){        //判断矩形是否合法 
    15                         if(chang==kuan)ans_zfx++;   //判断是正方形还是长方形 
    16                         else ans_cfx++;
    17                     }
    18                 }        
    19         }
    20     cout<<ans_zfx<<" "<<ans_cfx;
    21     return 0;
    22  } 

     方法二:不超时就得去找规律,用数学的方法来总结,看洛谷题解,非常详细!

  • 相关阅读:
    DDOS和cc攻击的防御
    shell脚本基础知识
    MySQL常用的查询命令
    shell常见脚本30例
    shell中的函数
    shell中的数字
    shell中的ps3为何物以及select循环
    FPGA设计经验谈 —— 10年FPGA开发经验的工程师肺腑之言
    FPAG结构 组成 工作原理 开发流程(转)
    modelsim仿真中 do文件的写法技巧
  • 原文地址:https://www.cnblogs.com/tflsnoi/p/13297891.html
Copyright © 2011-2022 走看看