MT2041 三角形的个数

思路:找规律,推公式

4等分:

        头朝上的三角形:

                边长为1:1+2+3+4=s1;

                边长为2:1+2+3=s2;

                边长为3:1+2=s3;

                边长为4:1=s4;

        即si=1+2+...+n-i+1=(n-i+2)*(n-i+1)/2

同理:头朝下的三角形:

                n=1:s=0;(1层)

                n=2:s=0+1;(2层)

                n=3:s=0+(1+2);(3层)

                n=4:s=0+1+(1+2+3);(4层)

                n=5:s=0+(1+2)+(1+2+3+4);

                n=6:s=0+1+(1+2+3)+(1+2+3+4+5);

        即f(n)=f(n-2)+(1+2+...+n-1)=f(n-2)+n*(n-1)/2

#include <bits/stdc++.h>
using namespace std;
int n;
int f(int n)
{
    if (n == 1)
        return 0;
    if (n == 2)
        return 1;
    return f(n - 2) + n * (n - 1) / 2;
}
int main()
{
    cin >> n;
    for (int i = 0; i < n; i++)
    {
        int x;
        cin >> x;
        int sum0 = 0, sum1 = 0; // 记录头朝上和头朝下的三角形数
        for (int j = 1; j <= x; j++)
        {

            sum0 += (x - j + 1) * (x - j + 2) / 2; // 头朝上
        }
        sum1 = f(x); // 头朝下
        cout << sum0 + sum1 << endl;
    }
    return 0;
}

相关推荐

  1. 双指针 之 有效三角形个数

    2024-04-24 23:28:03       39 阅读
  2. 611. 有效三角形个数(双指针)

    2024-04-24 23:28:03       12 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-24 23:28:03       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-24 23:28:03       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-24 23:28:03       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-24 23:28:03       20 阅读

热门阅读

  1. C语言oj题

    2024-04-24 23:28:03       10 阅读
  2. Sql多表查询

    2024-04-24 23:28:03       11 阅读
  3. 消息队列的简介

    2024-04-24 23:28:03       12 阅读
  4. 解耦、异步、削峰是什么

    2024-04-24 23:28:03       12 阅读
  5. 前端 -- if-else嵌套地狱

    2024-04-24 23:28:03       13 阅读
  6. class090 贪心经典题目专题2【左程云算法】

    2024-04-24 23:28:03       12 阅读
  7. 最短路问题之Dijkstra算法 洛谷 单源最短路径

    2024-04-24 23:28:03       12 阅读
  8. 上海计算机学会4月月赛 丙组题解

    2024-04-24 23:28:03       14 阅读
  9. MySQL的MVCC机制

    2024-04-24 23:28:03       14 阅读