Codeforces Round #157 (Div. 1) C. Little Elephant and LCM (数学、dp)_PHP教程
Codeforces Round #157 (Div. 1) C. Little Elephant and LCM (数学、dp)
C. Little Elephant and LCM time limit per test 4 seconds memory limit per test 256 megabytes input standard input output standard outputThe Little Elephant loves the LCM (least common multiple) operation of a non-empty set of positive integers. The result of the LCM operation of k positive integers x1,?x2,?...,?xk is the minimum positive integer that is divisible by each of numbers xi.
Let's assume that there is a sequence of integers b1,?b2,?...,?bn. Let's denote their LCMs as lcm(b1,?b2,?...,?bn) and the maximum of them as max(b1,?b2,?...,?bn). The Little Elephant considers a sequence b good, if lcm(b1,?b2,?...,?bn)?=?max(b1,?b2,?...,?bn).
The Little Elephant has a sequence of integers a1,?a2,?...,?an. Help him find the number of good sequences of integers b1,?b2,?...,?bn, such that for all i (1?≤?i?≤?n) the following condition fulfills: 1?≤?bi?≤?ai. As the answer can be rather large, print the remainder from dividing it by 1000000007 (109?+?7).
InputThe first line contains a single positive integer n (1?≤?n?≤?105) — the number of integers in the sequence a. The second line contains nspace-separated integers a1,?a2,?...,?an (1?≤?ai?≤?105) — sequence a.
OutputIn the single line print a single integer — the answer to the problem modulo 1000000007 (109?+?7).
Sample test(s)input
4 1 4 3 2
15
2 6 3
13
题意:
给你一个a序列,找出一个b序列,1?≤?bi?≤?ai,使得max(bi)=lcm(bi),问这样的bi序列有多少个。
思路:
先对a排序,枚举i=max(bi),对i因式分解,那么大于等于i的部分很好处理,直接pow_mod()相减,小于i的部分就任意取一个约束就够了。
代码:
<pre class="code">#include <iostream> #include<cstring> #include<cstdio> #include<string> #include<vector> #include #define INF 0x3f3f3f3f #define maxn 100005 #define mod 1000000007 typedef long long ll; using namespace std; int n; int a[maxn]; ll pow_mod(ll x,ll n) { ll res = 1; while(n) { if(n&1) res = res * x %mod; x = x * x %mod; n >>= 1; } return res; } void solve() { int i,j; ll ans=0,res; sort(a+1,a+n+1); for(i=1;i<=a[n];i++) // 枚举答案 { vector<int>fac; for(j=1;j*j<=i;j++) // factor { if(i%j==0) { fac.push_back(j); if(j*j!=i) fac.push_back(i/j); } } sort(fac.begin(),fac.end()); int pos,pre=1; res=1; for(j=1;j<fac.size();j++) { pos=lower_bound(a+1,a+n+1,fac[j])-a; res*=pow_mod(j,pos-pre); res%=mod; pre=pos; } ans+=res*((pow_mod(j,n-pre+1)-pow_mod(j-1,n-pre+1)+mod)%mod); ans%=mod; } printf("%I64d\n",ans); } int main() { int i,j; while(~scanf("%d",&n)) { for(i=1;i<=n;i++) { scanf("%d",&a[i]); } solve(); } return 0; }

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

AI,的确正在改变数学。最近,一直十分关注这个议题的陶哲轩,转发了最近一期的《美国数学学会通报》(BulletinoftheAmericanMathematicalSociety)。围绕「机器会改变数学吗?」这个话题,众多数学家发表了自己的观点,全程火花四射,内容硬核,精彩纷呈。作者阵容强大,包括菲尔兹奖得主AkshayVenkatesh、华裔数学家郑乐隽、纽大计算机科学家ErnestDavis等多位业界知名学者。AI的世界已经发生了天翻地覆的变化,要知道,其中很多文章是在一年前提交的,而在这一

Aheptagonalnumberisanumberwhichcanberepresentedasaheptagon.Aheptagonisapolygonwith7sides.Aheptagonalnumbercanberepresentedasacombinationofsuccessivelayersofheptagon(7-sidedpolygon).Heptagonalnumbercanbebetterexplainedwiththebelowfigures.第一个七边形数是1。因此,

计数,听起来简单,却在实际执行很有难度。想象一下,你被送到一片原始热带雨林,进行野生动物普查。每当看到一只动物,拍一张照片。数码相机只是记录追踪动物总数,但你对独特动物的数量感兴趣,却没有统计。那么,若想获取这一独特动物数量,最好的方法是什么?这时,你一定会说,从现在开始计数,最后再从照片中将每一种新物种与名单进行比较。然而,这种常见的计数方法,有时并不适用于高达数十亿条目的信息量。来自印度统计研究所、UNL、新加坡国立大学的计算机科学家提出了一种新算法——CVM。它可以近似计算长列表中,不同条

一夜之间,机器学习范式要变天了!当今,统治深度学习领域的基础架构便是,多层感知器(MLP)——将激活函数放置在神经元上。那么,除此之外,我们是否还有新的路线可走?就在今天,来自MIT、加州理工、东北大学等机构的团队重磅发布了,全新的神经网络结构——Kolmogorov–ArnoldNetworks(KAN)。研究人员对MLP做了一个简单的改变,即将可学习的激活函数从节点(神经元)移到边(权重)上!论文地址:https://arxiv.org/pdf/2404.19756这个改变乍一听似乎毫无根据

视觉随着人工智能技术的发展,AI绘画成为当下的一个热门话题。通过使用深度学习算法,人工智能可以生成逼真的图像,从而创造出惊人的艺术品。而这些惊人的作品背后,离不开数学知识的支持。数学模型在AI绘画中扮演着至关重要的角色。一方面,数学模型被用于描述和表示图像信息,从而让计算机能够理解和处理图像。另一方面,数学模型也被用于训练深度学习模型,从而实现图像的自动生成。深度学习模型带来高质量的图像生成深度学习模型是AI绘画中最核心的部分。它通过学习大量的图像数据来识别和模拟图像的特征,通过多层次的数据处理

最近一段时间,AI 作画可谓是火的一塌糊涂。在你惊叹 AI 绘画能力的同时,可能还不知道的是,扩散模型在其中起了大作用。就拿热门模型 OpenAI 的 DALL·E 2 来说,只需输入简单的文本(prompt),它就可以生成多张 1024*1024 的高清图像。在 DALL·E 2 公布没多久,谷歌随后发布了 Imagen,这是一个文本到图像的 AI 模型,它能够通过给定的文本描述生成该场景下逼真的图像。就在前几天,Stability.Ai 公开发布文本生成图像模型 Stable Diffusi

ChatGPT在生成随机数字方面,也是玩明白了人类的套路。 ChatGPT可能是一位废话艺术家、错误信息的传播者,但它不是「数学家」!近日,一位Meta的数据科学家Colin Fraser发现,ChatGPT并不能生成真正的随机数,而更像是「人类的随机数」。通过实验,Fraser得出的结论是:「ChatGPT非常喜欢数字42和7。」网友表示,意味着人类非常喜欢这些数字。ChatGPT也爱「宇宙终极答案」在他的测试中,Fraser输入的prompt如下:「Pick a random number

2022 年 10 月中旬,Justin Gilmer 从加利福尼亚飞往纽约,在东海岸拜访了他以前的导师 Michael Saks,一位罗格斯大学的数学家。叙旧期间,他们并未谈及数学。事实上,自从 2015 年在罗格斯大学获得博士学位后,Gilmer 就再没认真思考过数学问题。那时候他决定不在学术界发展,同时开始自学编程。当他和 Saks 共同用餐时,Gilmer 向导师讲述了自己在谷歌的工作:机器学习和人工智能。在校园的小路上,Gilmer 边走边回忆,2013 年,他花了一年多的时间走在这条
