URAL - 1114-Boxes (分步乘法原理)
生活随笔
收集整理的這篇文章主要介紹了
URAL - 1114-Boxes (分步乘法原理)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題意;
給你n個盤子,A個紅球,B個黑球,放的時候沒有限制,可以不放,可以放一個紅球,可以放一個黑球,也可以兩個同時放,可以有剩余的球。
求一共有多少放法。
思路:
可以利用分步乘法原理,紅球和黑球是等價的,所以把黑球的放法總數×紅球的放法總數就是答案
還有一個比較坑的就是輸出的問題,,%lld,%I64d,cout? 都用了,,就是一直wa? 最后百度了一下,,%I64u過了,真神奇的G++;
代碼如下
1 #include <stdio.h> 2 typedef long long ll; 3 const int maxn=1e5+5; 4 int main() 5 { 6 int n,a,b,c; 7 scanf("%d%d%d",&n,&a,&b); 8 if(a>b)c=a; 9 else c=b; 10 n--; 11 ll temp=1,ans=1,sum=1; 12 for(int i=1;i<=c;i++) 13 { 14 temp=temp*(n+i)/i; 15 sum+=temp; 16 if(i==a)ans*=sum; 17 if(i==b)ans*=sum; 18 } 19 printf("%I64u\n",ans); 20 return 0; 21 }?
轉載于:https://www.cnblogs.com/Cherry93/p/9900757.html
總結
以上是生活随笔為你收集整理的URAL - 1114-Boxes (分步乘法原理)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C#对XML操作类
- 下一篇: DRF的版本控制,认证,权限和频率限制