1. // uva 11401 Triangle Counting
  2. //
  3. // 题目大意:
  4. //
  5. // 求n范围内,任意选三个不同的数,能组成三角形的个数
  6. //
  7. // 解题方法:
  8. //
  9. // 我们设三角巷的最长的长度是c(x),另外两边为y,z
  10. // 则由z + y > x得, x - y < z < x 当y = 1时,无解
  11. // 当y = 2时,一个解,这样到y = x - 1 时 有 x - 2个
  12. // 解,所以一共是0,1,2,3....x - 2,一共(x - 2) * (x - 1) / 2
  13. // 而这个时候当y>x/2的时候就有 y = z的时候,所以要减去相等的
  14. // 情况 y 从 x/2 + 1 .... x - 1一共 x - 1 - x/2.最后,这样
  15. // y和z可以互换的,所以计算了两次,要再/2,最后的最后累加就好了
  16. //
  17. // 感悟:
  18. //
  19. // 这道题,我开始真的没想到,不会哟,实在是想不到,太巧了,想了好久
  20. // 继续加油吧~~~~FIGHTING
  21.  
  22. #include <cstdio>
  23. #include <cstring>
  24. #include <algorithm>
  25. #include <iostream>
  26.  
  27. using namespace std;
  28.  
  29. typedef long long ll;
  30.  
  31. ll f[];
  32.  
  33. void init(){
  34. f[] = ;
  35. for (ll i=;i<=;i++){
  36. f[i] = f[i-] + ((i - ) * (i-) / - (i-- i/)) / ;
  37. }
  38. }
  39.  
  40. int main(){
  41. init();
  42. int n;
  43. while(cin>>n){
  44. if (n < )
  45. break;
  46. cout << f[n] << endl;
  47. }
  48. }

uva 11401 Triangle Counting的更多相关文章

  1. 【递推】【组合计数】UVA - 11401 - Triangle Counting

    http://blog.csdn.net/highacm/article/details/8629173 题目大意:计算从1,2,3,...,n中选出3个不同的整数,使得以它们为边长可以构成三角形的个 ...

  2. UVa 11401 Triangle Counting (计数DP)

    题意:给定一个数 n,从1-n这些数中任意挑出3个数,能组成三角形的数目. 析:dp[i] 表示从1-i 个中任意挑出3个数,能组成三角形的数目. 代码如下: #pragma comment(link ...

  3. UVA 11401 - Triangle CountingTriangle Counting 数学

    You are given n rods of length 1,2, . . . , n. You have to pick any 3 of them and build a triangle. ...

  4. [Usaco2010 OPen]Triangle Counting 数三角形

    [Usaco2010 OPen]Triangle Counting 数三角形 Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 394  Solved: 1 ...

  5. acdream.A Very Easy Triangle Counting Game(数学推导)

    A - A Very Easy Triangle Counting Game Time Limit:1000MS     Memory Limit:64000KB     64bit IO Forma ...

  6. UVa 1225 Digit Counting --- 水题

    UVa 1225 题目大意:把前n(n<=10000)个整数顺次写在一起,12345678910111213...,数一数0-9各出现多少字 解题思路:用一个cnt数组记录0-9这10个数字出现 ...

  7. bzoj 1914: [Usaco2010 OPen]Triangle Counting 数三角形 容斥

    1914: [Usaco2010 OPen]Triangle Counting 数三角形 Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 272  Sol ...

  8. bzoj1914 [Usaco2010 OPen]Triangle Counting 数三角形 计算机和

    [Usaco2010 OPen]Triangle Counting 数三角形 Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 526  Solved: 2 ...

  9. UVA 1640 The Counting Problem UVA1640 求[a,b]或者[b,a]区间内0~9在里面各个数的数位上出现的总次数。

    /** 题目:UVA 1640 The Counting Problem UVA1640 链接:https://vjudge.net/problem/UVA-1640 题意:求[a,b]或者[b,a] ...

随机推荐

  1. Qt4.8.5 QtWebKit QWebView 用户栈检查崩溃问题的思考

    最近在项目中,发现在使用Qt4.8.5 提供的QWebView与网页交互的时候, m_pWebView->page()->mainFrame()->evaluateJavaScrip ...

  2. Java基础知识系列——Exception

    异常在编程中使用频率非常非常的高,在Java中异常的基类是Exception. 下面就介绍一下Java中的异常: 1.结构 try{ //捕获try里的异常 }catch( Exception e){ ...

  3. install LLVM

    version >= 3.8.0 $ cd llvm... $ mv someofClang ./tools $ mkdir build $ cd build $ cmake -DCMAKE_B ...

  4. centos 常见软件安装

    centos虚拟机扩展硬盘空间 http://www.cnblogs.com/sixiweb/p/3360008.html http://blog.csdn.net/remote_roamer/art ...

  5. android图片处理方法

    Java代码 //压缩图片大小 public static Bitmap compressImage(Bitmap image) { ByteArrayOutputStream baos = new ...

  6. git 查看远程分支、本地分支、创建分支、把分支推到远程repository、删除本地分支

    1 查看远程分支 $ git branch -a * br-2.1.2.2 master remotes/origin/HEAD -> origin/master remotes/origin/ ...

  7. OOP之C#设计及其UML(反向工程)

    现在总结一下C#类关键字(virtual.abstract.override.new.sealed)的使用(以C#代码体现),并再次熟悉一下OOP思想,使用UML工具EA(Enterprise Arc ...

  8. ORACLE存储过程创建失败,如何查看其原因

    工作中用SQL Server比较多,Oracle可以说是小白,最近想用存储过程来完成单据复制的功能,结果遇到各种问题,其实都是非常简单的问题,但是对我来说还是花了很多时间来解决,浪费这些时间非常不值得 ...

  9. UIView中间透明周围半透明(四种方法)

    方法一 #import "DrawView.h" @implementation DrawView - (instancetype)initWithFrame:(CGRect)fr ...

  10. ST算法

    作用:ST算法是用来求解给定区间RMQ的最值,本文以最小值为例 举例: 给出一数组A[0~5] = {5,4,6,10,1,12},则区间[2,5]之间的最值为1. 方法:ST算法分成两部分:离线预处 ...