题目
分析:枚举最大数,然后找出它所有因数p1…….pk, 从中任意选取一些数,这些数的LCM|这个数且,这些数的最大LCM就是枚举的这个数,且若pi<=aj<=pi+1则前i个数可以放在j这个位置,即j这个位置有cj种选择,总方案数就是c1*c2*……*cj
作为优化,对于每个pi,我们枚举有aj满足pi<=aj<=pi+1的个数记为qi,则有ans=1^qi*2^qi*……*q^qk,但这些方案包含不选择最大数的情况,则最后一项应为q^qk-(q-1)^qk

代码:

#include<cstdio>
#include<algorithm>
#include<cmath>
using namespace std;
#define MAXN 100000
#define MOD 1000000007
long long a[MAXN+10],n,p[MAXN+10],cnt,ans;
void Read(long long &x){char c;while((c=getchar())&&c!=EOF){if(c>='0'&&c<='9'){x=c-'0';while((c=getchar())&&c>='0'&&c<='9')x=x*10+c-'0';ungetc(c,stdin);return;}}
}
void isfactor(long long n){long long t=sqrt(n+0.5),i;cnt=0;for(i=1;i<=t;i++)if(n%i==0)p[++cnt]=i;i=cnt;cnt*=2;if(t*t==n)cnt--,i--;for(;i;i--){p[cnt-i+1]=n/p[i];}
}
long long pow(long long a,long long b){long long ret=1;while(b){if(b&1)ret=ret*a%MOD;b>>=1;a=a*a%MOD;}return ret;
}
int main()
{long long i,j,k,t,s;Read(n);for(i=1;i<=n;i++)Read(a[i]);sort(a+1,a+n+1);for(i=1;i<=a[n];i++){isfactor(i);t=0;s=1;for(j=2;j<=cnt;j++){k=lower_bound(a+t+1,a+n+1,p[j])-a-1;s=s*pow(j-1,k-t)%MOD;t=k;}s=s*(pow(cnt,n-t)+MOD-pow(cnt-1,n-t))%MOD;          //cnt^n-t%MOD有可能cnt-1^n-t%MOD小ans=(ans+s)%MOD;}printf("%I64d\n",ans);
}

转载于:https://www.cnblogs.com/outerform/p/5921946.html

【数论】[CF258C]Little elephant and LCM相关推荐

  1. 【BZOJ2154】Crash的数字表格,数论练习之二维LCM(莫比乌斯反演)

    Time:2016.06.18 Author:xiaoyimi 转载注明出处谢谢 看不见的分割线 传送门 思路: 设n≤m ∑i=1n∑j=1mlcm(i,j)\displaystyle \sum^n ...

  2. 输入法按照选字频率排序的C语言程序算法,算法与数据结构之选择排序(C语言)...

    #include #include void SelectSort(int *a,int n);//预声明要调用的函数 int main(void) { int k; int x[]={,,,,,,, ...

  3. czl蒻蒟的OI之路3

    XJOI奋斗群蒻蒟群群赛4 RANK排名3 T1Arpa and a research in Mexican wave WA一次后AC 题意 分析过程 给出题解 T2Arpa and an exam ...

  4. 【解题报告】2015ACM/ICPC亚洲区上海站

    题目链接 A.An Easy Physics Problem(HDU 5572) 思路 我们可以将问题分为以下 22 种情况: 球与圆柱相撞 球与圆柱不相撞 我们可以通过判断以 AA 为起点以 V⃗  ...

  5. 狂刷OJ基础题两天,OJ机考成功半小时全部AC了

    一.背景 我们学校有个程序设计实践(C\C++版),成绩就是平时给了54题刷够50+就平时分满分,期末考试就是上机考试八题(大概分为数论.简单计算.时间显示.进制转换.字符串.递归.枚举几大类型),只 ...

  6. 数论(一)——素数,GCD,LCM

    这是一个数论系列:) 一.素数 ×费马小定理 Theorem: 设 p 是一个素数,a 是一个整数且不是 p 的倍数,那么 很遗憾,费马小定理的逆定理是不成立的.对 a = 2,满足的非素数 n 是存 ...

  7. CF1471 D - Strange Definition(思维,分类讨论,lcm,gcd的性质,数论)

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Codeforces Round #694 (Div. 2) D 很好的一道数论思维题 D - Str ...

  8. matlab数组平方的计算自定义函数_从零开始的matlab学习笔记——(38)简单数论计算函数:取整,gcd,lcm,质数,全排列...

    matlab应用--求极限,求导,求积分,解方程,概率统计,函数绘图,三维图像,拟合函数,动态图,傅里叶变换,随机数,优化问题....更多内容尽在个人专栏:matlab学习 翻了翻优化工具箱,发现内容 ...

  9. C. Orac and LCM(数论)

    C. Orac and LCM(数论) 题目传送门 g 1 = g c d [ l c m ( a 1 , a 2 ) , l c m ( a 1 , a 3 ) - l c m ( a 1 , a ...

最新文章

  1. 广告点击率预测_精品案例|在线广告点击率预测
  2. css z-index层重叠顺序
  3. slider_wap
  4. 多个线程直接按对数据进行操作容易引发线程安全问题
  5. PyTorch基础(part4)
  6. python编程自然数表达式_[宜配屋]听图阁
  7. php 打包上传的文件,PHP单文件上传原理及上传函数的打包
  8. PHP: 关键字global 和 超全局变量$GLOBALS的用法、解释、区别
  9. 2020年前端如何适应大环境,发展的前途与趋势是怎么样的?
  10. MVC项目开发中那些用到的知识点(MVC IModelBinder)
  11. c# MVC在WEB.Config中配置MIME
  12. Windows Installer Cleanup Utility 下载和使用说明
  13. 浪曦_Struts2应用开发系列_第2讲.Struts2的类型转换-学习笔记
  14. hsql导入mysql_转-jira从HSQL迁移到MYSQL
  15. Ubuntu 16.04 安装破解版 matlab 2017b
  16. 实验一:译码器的实现
  17. Mongodb索引及explain
  18. vue项目使用3d高德城市地图用法
  19. 生活随记-如何健康摄入果糖
  20. 1399元千元真旗舰,360手机N5“能耐”在哪?

热门文章

  1. 如何在代码中将menu隐藏_如何在40行代码中将机器学习用于光学/光子学应用
  2. 数据增强 数据集扩充_数据扩充的抽象总结
  3. 12家股份银行当中,哪个盈利能力和口碑是最好的?
  4. 为什么余额宝要不断限制用户购买?
  5. 基础004_V7-DSP Slice
  6. 计算机1级 计算机基础知识,计算机一级计算机基础及MSOffice应用:计算机基础知识...
  7. matlab实现图像放大两倍,matlab图像处理基础知识0(双线性插值matlab实现--调整水平和垂直放大倍数)...
  8. android系统里面的mic是哪个app_安利 | 那些错过会后悔一年的法语APP
  9. java程序设计与实践教程 王薇 doc_Java程序设计与实践教程 王薇主编 答案
  10. 【caffe-Windows】基于Python多标签方法——VOC2012数据集