0606算法竞赛_数学思想
题目:
题目分析:
假设共有n位,先考虑可重复,对于每一个数字x,它对总和做出的贡献为11…111(n个1)* (n - 1) ! * x
因此设sum = sigma ai * i
那么可重复的总和即为11…111(n个1)* (n - 1) ! * sum
那么对不可重复而言,我们只需除以每一个ai的排列之积即可
代码如下:
#include <stdio.h>
#include <string.h>
#include <iostream>
#include <algorithm>
using namespace std;
const int N = 1e6 + 5;
const int mod = 1e9 + 7;
int fac[N], ifac[N];
int T[20];
typedef long long LL;int pow(int a, int b) {LL res = 1;for(;b;b >>= 1, a = (LL) a * a % mod) if (b & 1) res = res * a % mod;return res;
}int main() {int Max = 1000000;fac[0] = 1;for(int i = 1; i <= Max; ++ i) fac[i] = (LL)fac[i - 1] * i % mod;ifac[Max] = pow(fac[Max], mod - 2);for(int i = Max-1; i >= 0; -- i) ifac[i] = (LL)ifac[i + 1] * (i + 1) % mod;LL Sum = 0;int Count = 0;for(int i = 1; i <= 9; ++ i) {int temp;cin >> temp;T[i] = temp;Sum += i * temp;Count += T[i];} Sum %= mod;LL part_I = 0;for(int i = 1; i <= Count; ++ i) part_I = (part_I * 10 + 1) % mod;LL part_mul = fac[Count - 1];LL part_div = 1;for(int i = 1; i<= 9; ++ i) part_div = part_div * ifac[T[i]] % mod;// cout << Sum << ' ' << part_I << ' ' << part_mul << ' ' << part_div << endl;cout << (LL)Sum * part_I %mod * part_mul %mod * part_div % mod << endl;
}
代码分析:
1.pow用平方的方式,快速求取余的次方
2.part_I记录n个1
3.part_mul记录count-1的阶乘
4.part_div记录每一个ai的排列之积的相反数(why?我们这里直接除可以吗?)
总结:
1.typedef long long LL写法
2.1e9+7写法
0606算法竞赛_数学思想相关推荐
- 0606算法比赛_字符串处理_抓住问题的关键
题目: 例如给一段10位的0001111000那么去掉111后得到最长的序列即为7 初始想法: 判断连续的序列,然后遍历删除所有连续的序列,并得到去掉连续序列后的新序列.然后遍历新序列,找到长度最长的 ...
- 组合数学 算法导论 具体数学 博弈论 计算机科学数学
组合数学[清华大学] https://www.bilibili.com/video/BV1sW411V7RU 15日掌握<具体数学>第1天学习直播实况记录(2019.5.27) https ...
- c语言二分法查找一个数_算法竞赛小专题系列(1):二分法、三分法
本系列是这本算法教材的扩展资料:<算法竞赛入门到进阶>. 罗勇军.郭卫斌. 清华大学出版社 二分法和三分法是算法竞赛中常见的算法思路,本文介绍了它们的理论背景.模板代码.典型题目. 1. ...
- [算法竞赛入门]第二章_循环结构程序设计
第2章 循环结构程序设计 [学习内容相关章节] 2.1for循环 2.2循环结构程序设计 2.3文件操作 2.4小结与习题 [学习目标] (1)掌握for循环的使用方法: (2)掌握while循环的使 ...
- 成为计算几何master之路——记算法竞赛中常用的计几算法及思想
文章目录 成为计算几何MASTER(FAKE)之路 1 引言 1.1 精度 1.2 剖分 1.3 层次化设计 2 点,向量和线 2.1 点积和叉积 2.2 线段(直线) 2.2.1 点在线段上判定 2 ...
- 逻辑回归算法c语言_逻辑回归算法背后的数学
逻辑回归算法背后的数学 看完深蓝学院的机器学习公开课后,对于逻辑回归部分,打算写篇学习笔记记录总结一下,也和大家共同分享. 1 基本思能 逻辑回归(Logistic Regression)和线性回归( ...
- 蓝桥杯比赛常考算法_备战蓝桥--算法竞赛入门第一章总结
笔者备战蓝桥杯先打算看完<算法竞赛入门经典>第2版,在这里写下第一章的笔记,供自己和大家参考. 鸡兔同笼问题 原题: 已知鸡和兔的总数量为n,总腿数为m.输入n和m,依次输出鸡的数目和兔的 ...
- 算法竞赛训练指南代码仓库_数据仓库综合指南
算法竞赛训练指南代码仓库 重点 (Top highlight) As a data scientist, it's valuable to have some idea of fundamental ...
- [算法竞赛入门]第一章_算法概述
1 第1部分 语 言 篇2 3 第1章 程序设计入门4 [学习内容相关章节]5 1.1算术表达式 1.2变量及其输入 1.3顺序结构程序设计6 1.4分支结构程序设计 1.5C/C++编码规范 1.6 ...
最新文章
- 计算机桌面分页,电脑word文档怎么快速分页?
- Sql Server之旅——第十四站 深入的探讨锁机制
- WEBSERVICE之JDK开发webservice
- php安装pcntl扩展
- 音视频技术开发周刊 76期
- Computer Vision Review Incompletely
- 一个SpringBoot项目,开发业务前至少应该引入哪些配置?
- 手机日期插件jquery mobiscroll 实例
- 程序员的世界有 10 种人,你是哪一种?
- 小米max2装鸿蒙,小米Max2最全评测 小米Max2值不值得买?
- wifi ap6212驱动移植及调试分析技术笔记
- iOS最全学习资源汇总
- java 手机网站 cookie操作_Java中的cookie管理方案——完整易用的客户端cookie操作库...
- 如何EDI标准文件转换为自定义XML?
- C#基础教程-c#实例教程,适合初学者
- Web GIS开发教程
- 在Vue中将单独一张图片设为背景图并充满整个屏幕
- H264系列(7):H.264与MPEG4区别
- IBM x3750 M4之IMM管理
- Eloquent JavaScript 笔记 九: Regular Expressions(下)
热门文章
- 电容器指南(二)-陶瓷电容设计注意指标
- 世界杯期间 互联网彩票的绝地求生之路
- html 手写签名 撤销,[转]H5 canvas手写签名
- 资讯:微火荣获首批“支付宝数字化经营合作伙伴认证”
- 将多吉搜索dogedoge 设置为浏览器默认搜索引擎 Chrome和360浏览器 极速也行 秘迹搜索 lookao也有
- 电子设计大赛-信号产生电路
- File “src\lxml\etree.pyx“, line 3536, in lxml.etree.parse
- 《机器学习实战》8.2 线性回归基础篇之预测鲍鱼年龄
- 抖音矩阵具体玩法详情丨国仁网络资讯
- 质监局监督检测指挥系统