题目链接:https://vjudge.net/problem/TopCoder-14286

知识点:  组合数学、容斥原理

题目大意:

  给出 \(A,B,C\),问有多少个有序三元组 \((a,b,c)\),满足 \(a \le A,b \le B,c \le C\),并且长度为 \(a,b,c\) 的三条边能构成三角形。输出答案数模 \(1000000007\) 后的值。
  \(A,B,C \le 10^9\).
 
解题思路:
  答案等于 \(A \times B \times C\) 减去不能构成三角形的方案数。有三种不能构成三角形的对称的情况:
  \(a+b \le c, a+c \le b, b+c \le a\).
  现在先求解 \(a+b \le c\) 的情况,其他两种情况做类似处理即可。已知 \(c \le C\)。可以将 \(a +b \le c\) 表达成 \(a+b+x=c, 0 \le x\),将 \(c \le C\) 表达成 \(c+y=C, 0 \le y\)。则我们可以列出下式:
  \(a+b+x+y=C, 1 \le a,b, 0 \le x,y\)
  上式的解的个数即为满足 \(a+b \le c\) 的方案数,等价于将 \(C\) 分成 \(4\) 份(允许其中有两份为 \(0\))的方案数再利用容斥原理减去 \(a>A, b>B\) 的部分,具体的式子是
  \(C_{C+1}^{3}-C_{C-A+1}^{3}-C_{C-B+1}^{3}+C_{C-A-B+1}^{3}\).
 
AC代码:

 #include <cstdio>

 using namespace std;
typedef long long LL;
const LL mod=1e9+; class TriangleTriples{
public:
LL c3(LL a){
if(a<) return ;
return a*(a-)%mod*(a-)%mod*%mod;
}
LL solve(LL a,LL b,LL c){
return (c3(a+)-c3(a-b+)-c3(a-c+)+c3(a-b-c+)+mod)%mod;
} int count(int A, int B, int C){
LL a=A,b=B,c=C;
LL ans=a*b%mod*c%mod;
ans=(ans-solve(a,b,c)-solve(b,a,c)-solve(c,a,b))%mod;
ans+=mod;
ans%=mod;
return (int)ans;
}
};
  

最新文章

  1. 鼠标拖动在picturebox上画圆时
  2. MySQL找回管理员密码
  3. linux 系统下 ngnix 显示目录形式
  4. eclipse: The superclass &quot;javax.servlet.http.HttpServlet&quot; was not found 解决方案
  5. Selenium生成Report的利器- ExtentReports
  6. 树莓派USB摄像头与camera模块对比
  7. linux_jvm_jmap_dump内存分析
  8. Eclipse中文乱码解决汇总(应该比较全):
  9. c#委托和事件(下) 分类: C# 2015-03-09 08:42 211人阅读 评论(0) 收藏
  10. 【Nutch2.2.1基础教程之3】Nutch2.2.1配置文件
  11. 用正交多项式作最小二乘拟合的java实现(转)
  12. web学习总结之布局
  13. ASP.NET中使用Server.Transfer()方法在页间传值 实例
  14. js模块化/js模块加载器/js模块打包器
  15. Python-Django-Djangorestframwork
  16. Python学习周末练习1-用户登录
  17. [Android] Android 注解绑定UI View组件库 ButterKnife 的使用
  18. 完整的Django入门指南学习笔记1
  19. poj1456---贪心
  20. 安卓逆向之基于Xposed-ZjDroid脱壳

热门文章

  1. build.gradle 详解(一)
  2. Hybrid Automata 混合自动机入门
  3. socket编程-多个客户端向服务器发送人脸照片,服务器返回识别结果(服务器使用多线程)...
  4. 《SQL初学者指南》——第1章 关系型数据库和SQL
  5. Nginx比SRS做得好的地方
  6. CF1335F Robots on a Grid
  7. Jenkins 项目构建
  8. jmeter4.0,启动jmeter.bat闪退问题
  9. Java——Spring依赖配置详解
  10. 【Scala】代码实现Scala的各种模式匹配操作