题目链接:https://uva.onlinejudge.org/external/114/11401.pdf

题意:1~n个数里面挑3个不同的数,组成一个三角形。求方案数。

分析:

令最长的边为X,那么他能所组成的三角形个数为C(X),其余两条边是Y,Z;

Uva 11401 数三角形

但是,这并不是答案,因为里面有y=z的情况;

Uva 11401 数三角形这里都有一个:总共有x-1-x/2 + 1 -1 个y=z;

而且,当我的y=2,z=x-1时,最后面的z=x-1,y=2也算了一遍。

于是:

Uva 11401 数三角形

然后递推求和。

 1 #include <bits/stdc++.h>
 2 
 3 using namespace std;
 4 
 5 long long f[1000010];
 6 
 7 int main()
 8 {
 9     f[3] = 0;
10     for(long long x=4;x<=1000000;x++)
11         f[x] = f[x-1] + ((x-1)*(x-2)/2-(x-1)/2)/2;
12 
13     int n;
14     while(cin>>n) {
15         if(n<3) break;
16         cout<<f[n]<<endl;
17     }
18 
19     return 0;
20 }

 

相关文章:

  • 2021-07-31
  • 2021-08-08
  • 2021-10-14
  • 2021-07-25
  • 2022-03-15
  • 2021-10-01
  • 2021-12-04
猜你喜欢
  • 2021-05-23
  • 2021-11-09
  • 2021-10-01
  • 2021-12-27
  • 2021-07-21
  • 2021-06-18
相关资源
相似解决方案