一道排列组合题

原创 2015年11月21日 15:16:08

题目:


现假设要将颗粒状的药品调剂成一种新药。药品有A,B,C三种。新药调剂规则如下。

  • 从A,B,C这3种药品中,共取100粒进行调剂。
  • 调剂时,A,B,C这3种药品每种至少有一粒。
  • 不考虑药品调剂的顺序。
  • 同种药品每粒都相同。

这种情况下,新药调剂的组合共有多少种呢?


Solution 1:

  • 共有100粒药,我们假设A=>x,B=>y,C=>z,则有x+y+z = 100。
  • 调剂时,A,B,C每种至少有一粒,则有 1<=x<=98, 1<=y<=98, 1<=z<=98。
  • 不用考虑药品的顺序&&同种药品都是相同的。可以得出这是个分个数问题。

代码实现:

int x , y , z , count = 0;
    for (x = 1; x <= 98; x++){
        for (y = 1; y <= 98; y++){
            for (z = 1; z <= 98; z++){
                if (x + y + z == 100){
                    cout << "x: " << x << " " << "y: " << y << " " << "z: " << z << " " << endl;
                    count++;
                }
            }
        }
    }
    cout << count;

Solution 2:

  • 由于有A,B,C三种药,并且每一种药都至少有一粒。则我们可以规定有两块木板,分别为L1,L2,同时规定L1左边必定是A,右边必定是B;L2左边必定是B,右边必定是C。
  • 这样问题就转换为成,如果在99个空位里面填上两块木板。即方法有C(99,2)种。
  • 为什么可以如此转换?
    • 因为我们总有100粒药品,且每种药品的个数是可以活动的。所以,我们只需要保证有L1,L2,我们就能保证每类药品至少有一颗。

又一道简单题

又一道简单题 Time Limit: 5000MS Memory Limit: 65535KB 64bit IO Format: SubmitStatusDescriptio...
  • qq_32792879
  • qq_32792879
  • 2016年08月23日 16:50
  • 264

学生给老师的一道思考题

某一天某个老师对某个学生说“你现在已经旷课10学时,按照学校的规定需要上报”,该学生对老师说“这门课还能不能过了?如果不能我就不来了!”。 难啊,真难回答!刚开学没有几天,这个学期还有好长时间呢。如果...
  • JavaEETeacher
  • JavaEETeacher
  • 2009年09月11日 13:49
  • 4775

趣味智力题-排列组合方面

1、 可怜的琼斯夫人路过泡泡糖出售机时,尽量不使她的双胞胎儿子有所察觉。     大儿子:"妈妈,我要泡泡糖。"二儿子:"妈妈,我也要,我要和比利拿一样颜色的。"分币泡泡糖出售机几乎空了,里面只有4...
  • ajian005
  • ajian005
  • 2012年02月24日 10:17
  • 555

每天一道编程题(1)

现在有一张半径为r的圆桌,其中心位于(x,y),现在他想把圆桌的中心移到(x1,y1)。每次移动一步,都必须在圆桌边缘固定一个点然后将圆桌绕这个点旋转。问最少需要移动几步。 输入描述: 一行五个整数...
  • yj1499945
  • yj1499945
  • 2015年09月24日 10:15
  • 599

每天一道编程题(3)

有一个投篮游戏。球场有p个篮筐,编号为0,1...,p-1。每个篮筐下有个袋子,每个袋子最多装一个篮球。有n个篮球,每个球编号xi。规则是将数字为xi的篮球投到xi除p的余数为编号的袋里。若袋里已有篮...
  • yj1499945
  • yj1499945
  • 2015年09月26日 21:24
  • 478

CDOJ 每周一题div2 这是一道暴力题(暴力/思维)

昨天chipizz突然问我这道题怎么写,我当时就嘴炮AC了一下,感觉似乎很简单啊,于是去CDOJ注册了个帐号打算写写。 拿到这道题的第一想法是预处出现有数字能够组成的所有的能被3整除的一位数还有两位...
  • Murphyc
  • Murphyc
  • 2018年02月03日 19:35
  • 67

每日一道算法题——1

求字符串字串的长度。
  • q1242027878
  • q1242027878
  • 2017年02月07日 13:06
  • 589

华为机试第一题[2016年8月18日上午]计算重复字符

题目描述 输入一行字符,统计英文字母的个数,非英文字母直接掠过不统计 例如:输入:AAA^^^%ABBCd98n2    输出:A4B2C1d1n1 首先我想说的是,草,自己的代码能力真渣!!!!!回...
  • wdasdaw
  • wdasdaw
  • 2016年08月18日 17:32
  • 529

【BZOJ2759】一道动态树的好题

2759: 一个动态树好题Time Limit: 10 Sec Memory Limit: 128 MB Description有N个未知数x[1..n]和N个等式组成的同余方程组: x[i]=...
  • qq_30401759
  • qq_30401759
  • 2016年02月10日 12:06
  • 1182

每天一道算法题(24)——自定义幂函数pow

double myPower(double base, int exponent){ if(exponent==0) return 1; if(exponent==1) return ba...
  • qianhen123
  • qianhen123
  • 2015年06月25日 16:13
  • 642
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:一道排列组合题
举报原因:
原因补充:

(最多只允许输入30个字)