【數論】[CF258C]Little elephant and LCM

題目
分析:枚舉最大數,然后找出它所有因數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

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/258446.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/258446.shtml
英文地址,請注明出處:http://en.pswp.cn/news/258446.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

為普通Object添加類似AttachedProperty的屬性

為普通Object添加類似AttachedProperty的屬性 周銀輝 我們知道&#xff0c;在WPF中對應一個DependencyObject&#xff0c;我們很容易通過AttachedProperty來為類型附加一個屬性。但對于普通的Object而言&#xff0c;這就不可行了。 我現在遇到這樣一個問題&#xff0c;下面有一…

python 操作RabbitMQ

pip install pika使用API操作RabbitMQ基于Queue實現生產者消費者模型View Code 對于RabbitMQ來說&#xff0c;生產和消費不再針對內存里的一個Queue對象&#xff0c;而是某臺服務器上的RabbitMQ Server實現的消息隊列。#!/usr/bin/env python import pika# ###################…

python和嵌入式哪個容易_嵌入式與python選哪個

從概念上來說&#xff0c;嵌入式和Python的區別還是比較明顯的&#xff0c;嵌入式是一個開發領域&#xff0c;而Python則是一門編程語言。嵌入式開發是開發領域的一個重要分支&#xff0c;是物聯網領域技術的重要組成部分&#xff0c;可以說有物聯網的地方就離不開嵌入式開發。…

二階傳遞函數的推導及幾種求解方法的比較

二階系統是指那些可用二階微分方程描述的系統&#xff0c;其電路形式是由兩個獨立動態元器件組成的電路。 二階系統電路包括二階低通電路、二階高通電路、二階帶通電路和二階帶阻電路。 下面分別給出以上二階系統傳遞函數的推導過程&#xff0c;并以二階低通電路的沖激響應為例…

前端技術-調試工具(上)

頁面制作之調試工具 常用的調試工具有Chrome瀏覽器的調試工具&#xff0c;火狐瀏覽器的Firebug插件調試工具&#xff0c;IE的開發人員工具等。它們的功能與使用方法大致相似。Chrome瀏覽器簡潔快速&#xff0c;功能強大這里主要介紹Chrome瀏覽器的調試工具。 打開 Google Chrom…

新版Microsoft Edge支持跨平臺跨設備瀏覽

之前一直使用Google Chrome瀏覽器&#xff0c;可以隨意安裝插件擴展程序&#xff0c;無廣告&#xff0c;這是我鐘愛她的原因。但是之后不能登錄Google賬號&#xff0c;不能實現跨設備應用&#xff0c;就想找一款好用的替代品&#xff0c;近期發現了新版的Microsoft Edge&#x…

BZOJ1050 [HAOI2006]旅行

Description 給你一個無向圖&#xff0c;N(N<500)個頂點, M(M<5000)條邊&#xff0c;每條邊有一個權值Vi(Vi<30000)。給你兩個頂點S和T &#xff0c;求一條路徑&#xff0c;使得路徑上最大邊和最小邊的比值最小。如果S和T之間沒有路徑&#xff0c;輸出”IMPOSSIBLE”&…

biosrecovery什么意思_BIOS中的每個中文是什么意思

BIOS中的每個中文是什么意思&#xff0c;請對照的翻譯一下Time/System Time時間/系統時間Date/System Date日期/系統日期Level 2 Cache二級緩存System Memory系統內存Video Controller視頻控制器Panel Type液晶屏型號Audio Controller音頻控制器Modem Controller調制解調器(Mod…

百度網盤7.3.1.10版本增加工作空間功能,可實現百度網盤與電腦文件夾同步

百度網盤新增的工作空間是一款文件同步的產品&#xff0c;支持電腦本地與云端之間的文件同步&#xff0c;多設備間文件自動保持同步、支持查看文件每次都修改的歷史版本。功能類似于onedrive。如果有同步需求的小伙伴可以嘗試下載最新版的百度網盤試用該功能哦。下載網址&#…

ubuntu+idea intellij配置android開發環境

最近對移動開發產生興趣&#xff0c;決定在未來幾年內利用空余時間開發一些app或游戲什么的&#xff0c;鑒于ios開發成本較高&#xff0c;且自身對java相對熟悉&#xff0c;因此選擇了學習android。都說android市場不很很好&#xff0c;收益較難&#xff0c;但是仍覺得只要功夫…

typeof的用法

typeof可以返回變量的類型&#xff0c;返回值為字符串&#xff0c;其值有 "undefined" "boolean" "string" "number" "object" "function" 而 typeof(null)會返回object 轉載于:https://www.cnblogs.com/lhyhappy…

opencv 最大連通域_opencv 查找連通區域 最大面積實例

今天在弄一個查找連通的最大面積的問題。要把圖像弄成黑底&#xff0c;白字&#xff0c;這樣才可以正確找到。然后調用下邊的方法&#xff1a;RETR_CCOMP:提取所有輪廓&#xff0c;并將輪廓組織成雙層結構(two-level hierarchy),頂層為連通域的外圍邊界&#xff0c;次層位內層邊…

JS 函數柯里化

在計算機科學中&#xff0c;柯里化是把接受多個參數的函數變換成接受一個單一參數&#xff08;最初函數的第一個參數&#xff09;的函數&#xff0c;并且返回接受余下的參數而且返回結果的新函數的技術。——詳見 維基百科柯里化就是預先將某些參數傳入&#xff0c;得到一個簡單…

LTI系統的物理可實現性與希爾伯特變換

產品的設計一般為線性時不變系統&#xff0c;要求系統具有物理可實現性&#xff0c;從時域上看&#xff0c;h(t)具有因果性&#xff1b;從頻域上看&#xff0c;|H(jw)|符合佩利—維納準則。任何具有因果性的系統&#xff0c;|H(jw)|的實部R(w)滿足希爾伯特變換&#xff0c;|H(j…

垂死掙扎還是涅槃重生 -- Delphi XE5 公布會歸來感想

Delphi 是一個基本上被我遺忘的工具&#xff0c; 要不是在使用RapidSql , 我是收不到Embarcadero 公司發出的邀請來參加Delphi XE5的公布會的。 有人可能要問為什么是Embarcadero &#xff08;名稱很拗口&#xff09;而不是Borland 開Delphi 公布會&#xff0c; 這是由于Borla…

iOS Appstore 版本更新

1&#xff0c;版本更新 通過比較構建號/版本號 檢查更新 /// 構建號 50 // NSString * currentVersion [NSBundle mainBundle].infoDictionary["CFBundleVersion"];/// 版本號 2.2.0//CFBundleShortVersionStringNSString * currentVersion [NSBundle mainBund…

ubuntu下安裝國際版QQ

在網上看到了好多的ubuntu下安裝QQ的方法 好多 下面是看別人的文章 來測試的一篇 ubuntu下 安裝國際版QQhttp://www.ubuntukylin.com/applications/showimg.php?langcn&id23下載 地址網盤:http://yun.baidu.com/share/link?shareid2983202140&uk202032639下載好以后 …

傅里葉變換應用——信號調制與解調

傅里葉變換的典型應用主要用于通信的信號調制與解調&#xff0c;信號調制的目的是將信號進行變換&#xff0c;使其便于傳輸。頻率調制是將低頻信號調制到高頻載波信號上。同步信號解調是接受系統產生同步的高頻載波信號進行解調&#xff0c;從調制信號中恢復原信號的過程。調制…

cocos2d-x返回Android游戲黑屏解決辦法

返回Android游戲黑屏解決辦法這幾天逛cocos2d-x.org論壇&#xff0c;發現cocos2d-x的作者放出來一個帖子&#xff0c;用來解決返回Android游戲加載資源時黑屏的問題。帖子過些日子估計就沉了&#xff0c;所以轉出來&#xff0c;以供后面查詢。需要修改三個文件&#xff1a;1) c…

vue重要特性

重要特性 自定義input組件動態組件遞歸組件slot作用域slot異步組件內聯模板子組件索引進階 自定義指令狀態管理vuex單文件組件生產部署路由xxx