SPOJ 26777 ANTP - Mr. Ant & His Problem(组合数学)
2017-07-18 13:56
477 查看
Description
往三个盒子里放球,每个盒子里至少有一个球,三个盒子中球总数介于X和Y之间,求方案数
Input
第一行一整数T表示用例组数,每组用例输入两个整数X和Y表示球总数上下限(1<=T<=1e6,1<=X<=Y<=1e6)
Output
输出方案数,结果模1e9+7
Sample Input
1
4 5
Sample Output
9
Solution
考虑a+b+c=n,a,b,c>=1的方案数为C
,考虑插板法,在n个小球的n-1个空隙中插入2个板把小球分成非空的三部分,故方案数C
=(n-1)*(n-2)/2,对C求个前缀和sum[i]=C[1]+C[2]+…+C[i],那么答案即为C[y]-C[x-1]
Code
往三个盒子里放球,每个盒子里至少有一个球,三个盒子中球总数介于X和Y之间,求方案数
Input
第一行一整数T表示用例组数,每组用例输入两个整数X和Y表示球总数上下限(1<=T<=1e6,1<=X<=Y<=1e6)
Output
输出方案数,结果模1e9+7
Sample Input
1
4 5
Sample Output
9
Solution
考虑a+b+c=n,a,b,c>=1的方案数为C
,考虑插板法,在n个小球的n-1个空隙中插入2个板把小球分成非空的三部分,故方案数C
=(n-1)*(n-2)/2,对C求个前缀和sum[i]=C[1]+C[2]+…+C[i],那么答案即为C[y]-C[x-1]
Code
#include<cstdio> #include<iostream> #include<cstring> #include<algorithm> #include<cmath> #include<vector> #include<queue> #include<map> #include<set> #include<ctime> using namespace std; typedef long long ll; #define INF 0x3f3f3f3f #define maxn 1111111 #define mod 1000000007ll ll C[maxn]; void init() { C[0]=0; for(int i=1;i<=1000000;i++)C[i]=1ll*(i-1)*(i-2)/2%mod,C[i]=(C[i]+C[i-1])%mod; } int main() { init(); int T,x,y; scanf("%d",&T); while(T--) { scanf("%d%d",&x,&y); ll ans=((C[y]-C[x-1])%mod+mod)%mod; printf("%lld\n",ans); } return 0; }
相关文章推荐
- Spoj-ANTP Mr. Ant & His Problem
- ACM学习历程—SNNUOJ 1116 A Simple Problem(递推 && 逆元 && 组合数学 && 快速幂)(2015陕西省大学生程序设计竞赛K题)
- 【HDU】1131 - Count the Trees(组合数学 - 卡特兰数 & java)
- About EJB 03 Xdoclet & ANT 组合使用中关于build.xml的设置
- 组合数学1.4&3.10 By cellur925
- [数学 组合] BZOJ 3157 && BZOJ 3516 && BZOJ 4126 国王奇遇记
- POJ 3100 & ZOJ 2818 & HDU 2740 Root of the Problem(数学)
- HDU 4254 A Famous Game (概率&组合数学公式)
- BZOJ2302: [HAOI2011]Problem c|动态规划|组合数学
- SPOJ 15433 UCV2013E - Greedy Walking(组合数学)
- Problem 15 Lattice paths (组合数学)
- ACM学习历程—BestCoder 2015百度之星资格赛1001 大搬家(递推 && 组合数学)
- POJ 2282 The Counting Problem,组合数学
- joj 1172 The Equation Problem 组合数学
- CodeForces - 660E Different Subsets For All Tuples (组合数学&DP)好题
- Problem A. Arithmetic Derivative-XVII Open Cup named after E.V. Pankratiev||找规律&数学&DFS
- UVa 10025 The ? 1 ? 2 ? ... ? n = k problem (数学&想法题&常数算法)
- [Vijos 1137] 组合数 · 数学
- 组合数学之编程求&nbsp;&nbsp;C(n,m)和&nbsp;A(…
- 【Codeforces 869 C The Intriguing Obsession】& 组合数学 & 思维