欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

URAL - 1114-Boxes (分步乘法原理)

发布时间:2025/3/14 编程问答 37 豆豆
生活随笔 收集整理的这篇文章主要介绍了 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 (分步乘法原理)的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。