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

    题目背景

    1997年普及组第一题

    题目描述

    有一个n*m方格的棋盘,求其方格包含多少正方形、长方形

    输入输出格式

    输入格式:

    n,m因为原来数据太弱,现规定m小于等于5000,n小于等于5000(原来是100,100)

    输出格式:

    方格包含多少正方形、长方形

    输入输出样例

    输入样例#1:
    2 3
    输出样例#1:
    8 10


    正方形个数

    边长为1 个数n*m

    边长为2 个数(n-1)*(m-1)

    边长为3 个数(n-2)*(m-2)

    所以 边长为min{n,m} 个数(m-min{n,m}+1)*(n-min{n,m}+1)

    长方形加正方形个数

    total=(1+2+3+…+n)*(1+2+3+…+m)

    =((1+n)*(1+m)*n*m)/4

    长方形个数

    上面两式相减即可得出

    所以思路就是 先算出正方形个数 然后用公式得出长方形和正方形个数总和 最后得到长方形个数

    代码很短

     1 #include<iostream>
     2 #include<cstdio>
     3 #include<cstring>
     4 #include<cmath>
     5 using namespace std;
     6 int main()
     7 {
     8     long long n,m;
     9     long long ans1=1,ans2=0;
    10     cin>>n>>m;
    11     ans1=n*m;
    12     long long p=(((1+n)*(1+m))*(n*m))/4;
    13     while(n--&&m--)
    14     {
    15         ans1+=(n*m);
    16     }
    17     cout<<ans1<<" "<<p-ans1;
    18 }
  • 相关阅读:
    vue $refs的用法
    .net 合并GridView中某列相同信息的行(方法1)
    vue 将编号转换成名字显示
    base64转图片的工具网站
    html +css + js 实现自定义模态框
    asp 弹窗效果
    vue 关于$emit的用法
    Git 合并分支
    asp 学习网站
    Tomcat部署方法
  • 原文地址:https://www.cnblogs.com/zwfymqz/p/7084354.html
Copyright © 2011-2022 走看看