题目:

题目分析:
假设共有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算法竞赛_数学思想相关推荐

  1. 0606算法比赛_字符串处理_抓住问题的关键

    题目: 例如给一段10位的0001111000那么去掉111后得到最长的序列即为7 初始想法: 判断连续的序列,然后遍历删除所有连续的序列,并得到去掉连续序列后的新序列.然后遍历新序列,找到长度最长的 ...

  2. 组合数学 算法导论 具体数学 博弈论 计算机科学数学

    组合数学[清华大学] https://www.bilibili.com/video/BV1sW411V7RU 15日掌握<具体数学>第1天学习直播实况记录(2019.5.27) https ...

  3. c语言二分法查找一个数_算法竞赛小专题系列(1):二分法、三分法

    本系列是这本算法教材的扩展资料:<算法竞赛入门到进阶>. 罗勇军.郭卫斌. 清华大学出版社 二分法和三分法是算法竞赛中常见的算法思路,本文介绍了它们的理论背景.模板代码.典型题目. 1. ...

  4. [算法竞赛入门]第二章_循环结构程序设计

    第2章 循环结构程序设计 [学习内容相关章节] 2.1for循环 2.2循环结构程序设计 2.3文件操作 2.4小结与习题 [学习目标] (1)掌握for循环的使用方法: (2)掌握while循环的使 ...

  5. 成为计算几何master之路——记算法竞赛中常用的计几算法及思想

    文章目录 成为计算几何MASTER(FAKE)之路 1 引言 1.1 精度 1.2 剖分 1.3 层次化设计 2 点,向量和线 2.1 点积和叉积 2.2 线段(直线) 2.2.1 点在线段上判定 2 ...

  6. 逻辑回归算法c语言_逻辑回归算法背后的数学

    逻辑回归算法背后的数学 看完深蓝学院的机器学习公开课后,对于逻辑回归部分,打算写篇学习笔记记录总结一下,也和大家共同分享. 1 基本思能 逻辑回归(Logistic Regression)和线性回归( ...

  7. 蓝桥杯比赛常考算法_备战蓝桥--算法竞赛入门第一章总结

    笔者备战蓝桥杯先打算看完<算法竞赛入门经典>第2版,在这里写下第一章的笔记,供自己和大家参考. 鸡兔同笼问题 原题: 已知鸡和兔的总数量为n,总腿数为m.输入n和m,依次输出鸡的数目和兔的 ...

  8. 算法竞赛训练指南代码仓库_数据仓库综合指南

    算法竞赛训练指南代码仓库 重点 (Top highlight) As a data scientist, it's valuable to have some idea of fundamental ...

  9. [算法竞赛入门]第一章_算法概述

    1 第1部分 语 言 篇2 3 第1章 程序设计入门4 [学习内容相关章节]5 1.1算术表达式 1.2变量及其输入 1.3顺序结构程序设计6 1.4分支结构程序设计 1.5C/C++编码规范 1.6 ...

最新文章

  1. 计算机桌面分页,电脑word文档怎么快速分页?
  2. Sql Server之旅——第十四站 深入的探讨锁机制
  3. WEBSERVICE之JDK开发webservice
  4. php安装pcntl扩展
  5. 音视频技术开发周刊 76期
  6. Computer Vision Review Incompletely
  7. 一个SpringBoot项目,开发业务前至少应该引入哪些配置?
  8. 手机日期插件jquery mobiscroll 实例
  9. 程序员的世界有 10 种人,你是哪一种?
  10. 小米max2装鸿蒙,小米Max2最全评测 小米Max2值不值得买?
  11. wifi ap6212驱动移植及调试分析技术笔记
  12. iOS最全学习资源汇总
  13. java 手机网站 cookie操作_Java中的cookie管理方案——完整易用的客户端cookie操作库...
  14. 如何EDI标准文件转换为自定义XML?
  15. C#基础教程-c#实例教程,适合初学者
  16. Web GIS开发教程
  17. 在Vue中将单独一张图片设为背景图并充满整个屏幕
  18. H264系列(7):H.264与MPEG4区别
  19. IBM x3750 M4之IMM管理
  20. Eloquent JavaScript 笔记 九: Regular Expressions(下)

热门文章

  1. 电容器指南(二)-陶瓷电容设计注意指标
  2. 世界杯期间 互联网彩票的绝地求生之路
  3. html 手写签名 撤销,[转]H5 canvas手写签名
  4. 资讯:微火荣获首批“支付宝数字化经营合作伙伴认证”
  5. 将多吉搜索dogedoge 设置为浏览器默认搜索引擎 Chrome和360浏览器 极速也行 秘迹搜索 lookao也有
  6. 电子设计大赛-信号产生电路
  7. File “src\lxml\etree.pyx“, line 3536, in lxml.etree.parse
  8. 《机器学习实战》8.2 线性回归基础篇之预测鲍鱼年龄
  9. 抖音矩阵具体玩法详情丨国仁网络资讯
  10. 质监局监督检测指挥系统