题目描述

假期快结束了,小C还有n道数学题没有做完,每道题 i 都有一个复杂度 ai,现在小C想从n道题中选 取3道复杂度乘积最小的习题来做(3道题不能相同),这样的复杂度乘积最小的组合有多少种选取方 案呢?

输入格式

第一行:一个正整数n(3 <= n <= 100000),代表还有n道习题
第二行:n个正整数 ai(1 <= ai <= 1e9),代表了第 i 题的复杂度

输出格式

输出一个数字,代表复杂度乘积最小的不同组合的方案数

输入输出样例
输入 #1
4
1 1 1 1
输出 #1
4
输入 #2
5
1 3 2 3 4
输出 #2
2
输入 #3
6
1 3 3 1 3 2
输出 #3
1
说明/提示
数据范围

对于50%的数据,3 <= n <= 100
对于75%的数据,3 <= n <= 1000
对于100%的数据,3 <= n <= 100000

样例解释

样例一:
任意3道题复杂度乘积的最小值是1
第1题 * 第2题 * 第3题 = 1 * 1 * 1 = 1
第1题 * 第2题 * 第4题 = 1 * 1 * 1 = 1
第1题 * 第3题 * 第4题 = 1 * 1 * 1 = 1
第2题 * 第3题 * 第4题 = 1 * 1 * 1 = 1

样例二:
任意3道题复杂度乘积的最小值是6
第1题 * 第2题 * 第3题 = 1 * 3 * 2 = 6
第1题 * 第3题 * 第4题 = 1 * 2 * 3 = 6

样例三:
任意3道题复杂度乘积的最小值是2
第1题 * 第4题 * 第6题 = 1 * 1 * 2 = 2


解题思路

运用小学二年级知识可得,乘积要小,肯定乘数要小
所以随便sort一下,把前三小的数值求出来

第一小的数值有x个,第二y个,第三z个

  1. 3 ≤\leq≤x,ans等于Cx3C_x^3Cx3​
  2. ①x = 2,1≤\leq≤y,ans等于Cy1C_y^1Cy1​
    ②x = 1,2≤\leq≤y,ans等于Cy2C_y^2Cy2​
  3. x = 1,y = 1,ans等于Cz1C_z^1Cz1​

我就打了个特暴力求解,但是和上面的式子本质一样

众所周知,一再重复,可以用杨辉三角求C
而且C最多就求到f[][3]f[][3]f[][3],根本就不会超


Code

#include <algorithm>
#include <iostream>
#include <cstdio>using namespace std;int n, num, k, a[100100];
long long f[100100][5], ans;void demo (){//求Cf[0][0] = 1;for (int i = 1; i <= n; i++){f[i][0] = 1;for (int j = 1; j <= min (i, 3); j++)f[i][j] = f[i - 1][j - 1] + f[i - 1][j];}
}int main(){scanf ("%d", &n);demo ();for (int i = 1; i <= n; i++)scanf ("%d", &a[i]);sort (a + 1, a + n + 1);num = 3, k = 1;//num是选数,k是记录x或y或z的for (int i = 2; i <= n + 1; i++){if (!num) break;//3个数选完了if (a[i] == a[i - 1]) k++;//记录个数else  if (k > num)//直接大于选数个数{if (!ans) ans = 1;ans *= f[k][num];//乘上Cnum = 0;}else//小于num的时候是不会对答案产生影响,因为没有多种方案{if (!ans) ans = 1;num -= k;k = 1;}}printf ("%lld", ans);
}

【数学】小C的作业题相关推荐

  1. 国庆中秋活动——让孩子亲近数学并爱上数学:《数学小侦探》来袭(来自科大出版社的福利)

    通知!通知!通知!!! 玩酷屋十一黄金优惠限时限量秒杀活动,能抢到算你厉害: 1.活动期间 2017/09/30  22:30 --2017/10/03  22:30 2.[数学小侦探]原价 82元, ...

  2. 数学小魔术 —— 猜数字(二)(我回来了)

    数学小魔术--猜数字 请你的同伴随便选一个两位数(当然不告诉你是什么数字),然后要求他从这个数中任意减去一个一位数(1-9,随便哪个都可),把差值乘上 9,得出该乘积之后,再加上原来选定的那个数目,把 ...

  3. 猴子摘香蕉问题python_Python实战,解决数学小问题猴子分香蕉

    Python实战,解决数学小问题猴子分香蕉 问题描述 一个岛上有5个猴子,和一堆香蕉.第一个猴子先来,把香蕉平分成了5份,结果多出来一个香蕉,他就把香蕉扔了,然后抱走一份走了.第二个猴子又来了,把剩下 ...

  4. Python数字华容道--程序实现的创意数学小游戏

    下载链接:Python数字华容道--程序实现的创意数学小游戏-Python文档类资源-CSDN下载 当前的数学教育环境下,更强调的是数学素养的提升,本程序提供了一个免费的数学益智小游戏的学习和训练平台 ...

  5. 数学计算机小论文范文,数学小论文 数学小论文范文5篇

    随着数学课程改革的逐步深入,学生数学素养的提高.问题意识的培养等问题越发成为教师在课堂教学中关注的问题.下面是小编为大家推荐的数学小论文,供大家参考. 数学小论文范文一:数学论文 我曾经看过这样一个新 ...

  6. 数学小魔术——猜数字

    数学小魔术--神奇的二进制 请你任意猜想一个三位数,把这个三位数乘以 91 的乘积的最后三位告诉我,我们很快猜出你心中所想的那个三位数是多少? 我们以对方心中所想的 789 为例,则对方计算出 789 ...

  7. Python数学小实验(1)——自然对数e的理解

    Python数学小实验(1)--自然对数e的理解 先来输出一下自然对数e: >>>from math import e >>>print (e) 2.7182818 ...

  8. Python数学小实验——自然对数e的理解

    Python数学小实验--自然对数e的理解 先来输出一下自然对数e: >>>from math import e>>>print (e)2.718281828459 ...

  9. 数学小课堂:数学思维(从逻辑出发想问题)

    文章目录 引言 I "复利"增长是无法长期为继的 1.1 次级贷款 1.2 CDS(信用违约交换) II 使用逻辑发现问题 2.1 案例:"一带一路" 2.2 ...

  10. 大于3小于4的整数bleem_六年级数学小升初知识点梳理

    对于即将升入初中的六年级学生来说,如何高效复习数学成了家长老师们头一件大事.下面是赶考状元小编整理的关于小学六年级的数学总复习资料,供大家参阅,希望对您的教育教学有帮助! 六年级-小学数学总复习资料1 ...

最新文章

  1. XML解析文件出错解决方法
  2. R语言ineq算基尼系数_5 月编程语言排行榜:Java第一,R跌出Top20
  3. python 文件操作 os.path.join(path, *paths) 路径合成(追加)
  4. 应对恶劣网络环境,为php-curl设置超时限制,防止服务器卡死
  5. iOS一些推荐的学习路径发展
  6. 数据库工具phpstudy
  7. 对美的拥有-读阿兰德波顿《旅行的艺术》(zz)
  8. eslint检测时报错
  9. 设计模式——策略模式详解
  10. Google 员工公开 Windows 10 零日漏洞隐藏 Bug!
  11. 【下载】快速通过Python笔试?学大家一样先把LeetCode答案私藏了
  12. sampro效果_SAM机架设置音乐/话筒/麦克风/输入和效果输出/添加VST插件/详细教程(附:SAM机架VST插件效果包下载)...
  13. Windows OCR推荐
  14. 运放参数的详细解释和分析压摆率SR
  15. 【Notepad++】Notepad++格式化JSON数据
  16. php用户登录论坛系统,PHPWind
  17. 解决[“usingcomponents“][“van-button“]: “@vant/weapp/button/index“ 未找到:
  18. JVM内存区域详解(Eden Space、Survivor Space、Old Gen、Code Cache和Perm Gen)
  19. VSCode取消references的方法记录
  20. 【面试必备】java开发转算法工程师

热门文章

  1. 案例分享 | 腾讯互娱基于 CPU 环境的分布式 YOLOv3 实现
  2. Rust的错误处理机制
  3. 条形码生成软件如何批量生成ISBN条码
  4. because of, due to, owing to, on account of,as a result of和thanks to的用法比较
  5. Unity3d坦克大战联网
  6. 程序员面试时会遇上哪些问题
  7. Podman 容器 pod 管理工具
  8. Renderdoc调试总结
  9. 【Win10电脑更新】Win10电脑更新后小娜Cortana不能登录、咨询和兴趣不能查看的问题怎么解决
  10. 如何删除数据库中的冗余数据…