codeforces 571A--Lengthening Sticks(组合+容斥)
来源:互联网 发布:非结构化数据举例 编辑:程序博客网 时间:2024/04/30 01:34
题目链接:点击打开链接
题目大意:给出三条边的长度,可以给任意一条边增加任意的长度,但是增加的长度的总和不能超过l,问有多少种增加的方法,可使得三条边任然能组成一个三角形。
用总的方法数-不能组成三角形的方法数
首先求出所有的能增加的方法,如果三条边增加的长度和是l,那么一共有C(l+2,2)种,计算出从0到l的所有的方法。
然后计算不能组成三角形的方法,如果最长边>=另外两边之和,那么就不是三角形,所以分别枚举a+i,b+i,c+i为最长边,然后计算有多少种不可能的办法。
#include <cstdio>#include <cstring>#include <algorithm>using namespace std ;#define LL __int64LL sum[300100] ;LL solve(int a,int b,int c,int l) { if( a < b+c ) return (LL)0 ; LL ans = min(a-b-c,l) ; return (ans+1)*(ans+2)/2 ;}int main() { int a , b , c , l ; LL i , ans ; while( scanf("%d %d %d %d", &a, &b, &c, &l) != EOF ) { sum[0] = 1 ; for(i = 1 ; i <= l ; i++) { sum[i] = (i+1)*(i+2)/2 + sum[i-1] ; } ans = sum[l] ; for(i = 0 ; i <= l ; i++) { ans -= solve(a+i,b,c,l-i) ; ans -= solve(b+i,a,c,l-i) ; ans -= solve(c+i,a,b,l-i) ; } printf("%I64d\n", ans) ; } return 0 ;}
1 0
- codeforces 571A--Lengthening Sticks(组合+容斥)
- Codeforces Round #317 A. Lengthening Sticks(组合+容斥)
- 容斥 + 组合数学 ---Codeforces Round #317 A. Lengthening Sticks
- [组合] Codeforces #571A. Lengthening Sticks
- codeforces 571 A Lengthening Sticks
- Lengthening Sticks - Codeforces 571 A
- codeforces 571 A. Lengthening Sticks
- Lengthening Sticks 组合数+容斥原理
- Lengthening Sticks(容斥,组合数学)
- Codeforces Round #317 [AimFund Thanks-Round] (Div. 2) C Lengthening Sticks(组合+容斥)
- Codeforces div2 #317C Lengthening Sticks(组合数学+ 容斥原理)
- 571A Lengthening Sticks
- CodeForces #317 (div2) C.Lengthening Sticks (容斥)
- C. Lengthening Sticks(Codeforces Round #317 容斥定理)
- codeforces 317 A - Lengthening Sticks
- CF571A - Lengthening Sticks(容斥)
- Codeforces Round #317 (Div. 2) 571A. Lengthening Sticks 组合数学
- 51NOD 1509 加长棒 && Codeforces 571 A. Lengthening Sticks(组合数学 + 挡板法)
- tomcat无法连接,./shutdown.sh的时候报connect refuse
- TLD算法流程说明--episode2
- busybox 安装
- jsonc库使用
- 让IE浏览器支持html5标准
- codeforces 571A--Lengthening Sticks(组合+容斥)
- Android 内存优化解决方案 (OOM)
- [LeedCode OJ]#91 Decode Ways
- Android5.0 ripple效果低版本的实现
- JAVA中的反射机制
- bower和npm的依赖管理
- Android IM(六)总结
- Kick the ball!(dfs)湖南省赛第十届
- oracle怎样删除回收站里面的表