博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ZOJ 1202 Divide and Count(排列组合)
阅读量:6209 次
发布时间:2019-06-21

本文共 862 字,大约阅读时间需要 2 分钟。

Divide and Count

题目大意:给定箱子的数量和每个箱子的容量,在每个箱子里都装满对应容量的宝石,每颗宝石都是独一无二的,求一共有多少种放置方式。但是如果两个箱子的容量相同,则认为是  同一种箱子

Sample input:

23 331 2 3

Sample output:

1060

分析:这是练习赛的时候处在HUST上的题目,当时感觉代码完全对了,却坑了半天,看了题解才发现,是最后除以相同的箱子的时候,是除以它的数量的阶乘,本来是这么想的,却先把它们给乘起来了,样例只是碰巧对而已。也用不到64位整数。

代码如下:

1 #include 
2 # include
3 # include
4 using namespace std; 5 6 int f(int a,int b) //从a到b的乘积 7 { 8 int i; 9 int ans= 1;10 for(i=a; i<=b; i++)11 {12 ans *= i;13 }14 return ans;15 }16 int main()17 {18 int i,T,sum,hh,ans;19 int num[13],a[13];20 while(scanf("%d",&T)!=EOF)21 {22 23 sum = 0;24 for(i=0; i<=12; i++)25 a[i]=0;26 for(i=0; i
1)41 ans /= f(1,a[i]); //这里除以阶乘42 }43 printf("%d\n",ans);44 }45 return 0;46 }

 

 

转载地址:http://fpbja.baihongyu.com/

你可能感兴趣的文章
nodejs npm常用命令
查看>>
ORA-12520错误解决一则
查看>>
日本恐怖片《二重身》核心内容赏析
查看>>
Redis 集群的合纵与连横
查看>>
[转] easyui 获取数据表格中选中行的数据 Get selected row data from...
查看>>
var和dynamic的区别及如何正确使用dynamic ?
查看>>
Android万能适配器base-adapter-helper的源代码分析
查看>>
一起刑事案件法庭辩护 z
查看>>
Pat(Advanced Level)Practice--1043(Is It a Binary Search Tree)
查看>>
怎样从 Google Play 下载 Android 程序到电脑上
查看>>
(一)----使用HttpClient发送HTTP请求(通过get方法获取数据)
查看>>
java面试第七天
查看>>
atitit.bsh BeanShell 的动态脚本使用java
查看>>
浏览器被劫持到http://hao.169x.cn/?v=108的解决办法
查看>>
spring security原理图及其解释
查看>>
Redis安全
查看>>
Lua面向对象设计(转)
查看>>
动态载入Layout 与 论Activity、 Window、View的关系
查看>>
发展中的生命力——Leo鉴书69
查看>>
iOS计算两个时间的时间差
查看>>