Educational Codeforces Round 33 (Rated for Div. 2) E. Counting Arrays

題目鏈接
題意:給你兩個數x,yx,yx,y,讓你構造一些長為yyy的數列,讓這個數列的累乘為xxx,輸出方案數。
思路:考慮對xxx進行質因數分解,設某個質因子PiP_iPi?的的冪為kkk,則這個質因子的貢獻就相當于把kkkPiP_iPi?放到yyy個盒子中,且盒子可能為空,方案為C(k+y?1,y)C(k+y-1,y)C(k+y?1,y),然后每個質因子的方案乘在一起即可。最后,因為負號也會出現,但xxx為正,所以就是在yyy個位置上選偶數個位置放負號,方案為2y?12^{y-1}2y?1再乘起來即可。

#include<bits/stdc++.h>#define LL long long
#define fi first
#define se second
#define mp make_pair
#define pb push_backusing namespace std;LL gcd(LL a,LL b){return b?gcd(b,a%b):a;}
LL lcm(LL a,LL b){return a/gcd(a,b)*b;}
LL powmod(LL a,LL b,LL MOD){LL ans=1;while(b){if(b%2)ans=ans*a%MOD;a=a*a%MOD;b/=2;}return ans;}
const int N = 2e6 +11;
const LL mod=1e9+7;
LL Fac[N+33],Inv[N+33];
int p[N+33],a[N+33],cnt;
void init(){Fac[0]=1;for(int i=1;i<=N;i++)Fac[i]=(Fac[i-1]*i)%mod;Inv[N]=powmod(Fac[N],mod-2,mod);for(int i=N-1;i>=1;i--)Inv[i]=(Inv[i+1]*(i+1))%mod;Inv[0]=1;
}
void P(){for(int i=2;i<N;i++){if(!p[i])a[++cnt]=i;for(int j=1;j<=cnt&&1ll*a[j]*i<N;j++){p[a[j]*i]=1;if(i%a[j]==0)break;}}
}
LL C(int x,int y){return 1ll*Fac[x]*Inv[y]%mod*Inv[x-y]%mod;
}
int main(){ios::sync_with_stdio(false);init();int t;P();for(cin>>t;t;t--){int x,y;cin>>x>>y;LL ans=1;for(int i=1;i<=cnt&&1ll*a[i]*a[i]<=x;i++){if(x%a[i]==0){int res=0;while(x%a[i]==0)res++,x/=a[i];ans=ans*C(res+y-1,y-1);ans%=mod;}}if(x>1)ans=ans*C(y,y-1)%mod;cout<<ans*powmod(2,y-1,mod)%mod<<endl;}return 0;
}

轉載于:https://www.cnblogs.com/pubgoso/p/10759709.html

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

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

相關文章

《面向對象分析與設計》一第2章 什么是面向對象分析

第2章 什么是面向對象分析 面向對象分析&#xff08;ObjectOriented Analysis&#xff0c;OOA&#xff09;&#xff0c;就是運用面向對象方法進行系統分析。它是軟件生命周期的一個階段&#xff0c;具有一般分析方法所共同具有的內容、目標及策略。但是OOA強調運用面向對象方…

hql可以使用distinct嗎_輸送食品可以使用白色PVC輸送帶嗎?

食品&#xff0c;是給人們吃到肚子里的&#xff0c;因此不管在加工環節、制造環節還是其他環節&#xff0c;都需要做好食品的安全問題。根據不同的食品&#xff0c;其制造的環境也不同&#xff0c;所使用到的食品輸送帶的材質也是不一樣的&#xff0c;這些是需要根據輸送的食品…

htc one m7 linux驅動,HTC One M7官方RUU固件包(可救磚)

在網上找了找關于HTC One M7 (801e)的官方ruu固件包還不多&#xff0c;找了一些&#xff0c;不過有些不能下載&#xff0c;在這里整理了幾款可以下載的官方ruu包&#xff0c;這些包都是官方原版的&#xff0c;都是支持線刷的&#xff0c;大家可以下載下來備用了&#xff0c;也可…

emoji .png_根據我對3.5GB聊天記錄的分析,Emoji開發人員使用最多

emoji .pngby Evaristo Caraballo通過Evaristo Caraballo 根據我對3.5GB聊天記錄的分析&#xff0c;Emoji開發人員使用最多 (The Emoji developers use most — based on my analysis of 3.5GB of chat logs) Emoji have drastically changed the way we communicate in socia…

forward和redirect的區別

1.從地址欄顯示來說forward是服務器請求資源,服務器直接訪問目標地址的URL,把那個URL的響應內容讀取過來,然后把這些內容再發給瀏覽器.瀏覽器根本不知道服務器發送的內容從哪里來的,所以它的地址欄還是原來的地址.redirect是服務端根據邏輯,發送一個狀態碼,告訴瀏覽器重新去請求…

CF662C Binary Table(FWT)

[Luogu-CF662C] FWT_xor 題目描述 有一個 \(n\) 行 \(m\) 列的表格&#xff0c;每個元素都是 $0/1 $&#xff0c;每次操作可以選擇一行或一列&#xff0c;把 \(0/1\) 翻轉&#xff0c;即把 \(0\) 換為 \(1\) &#xff0c;把 \(1\) 換為 \(0\) 。請問經過若干次操作后&#xff0…

c語言fmin最小公倍數,matlab小函數

8種機械鍵盤軸體對比本人程序員&#xff0c;要買一個寫代碼的鍵盤&#xff0c;請問紅軸和茶軸怎么選&#xff1f;(記得按字母序索引)矩陣向量化操作A(:)拉成一個向量 ($a_{11},a_{21},…$)&#xff0c;注意先列后行repmat用途&#xff1a;創建由小型矩陣重復組合成的矩陣&#…

spring管理的類如何調用非spring管理的類

spring管理的類如何調用非spring管理的類. 就是使用一個spring提供的感知概念,在容器啟動的時候,注入上下文即可. 下面是一個工具類. 1 import org.springframework.beans.BeansException;2 import org.springframework.context.ApplicationContext;3 import org.springframewo…

django構建網頁_如何使用Django構建照片供稿

django構建網頁by Ogundipe Samuel由Ogundipe Samuel 如何使用Django構建照片供稿 (How to build a photo feed using Django) Today, we will make a real-time photo feed framework using Django and Pusher. This is like a mini Instagram, but without the comments and…

報表系統的雄心

這周有朋自遠方來&#xff0c;聊了對報表工具的看法&#xff0c;因此專門寫篇文章來談談報表系統的未來。 筆者知道不可能有十全十美的報表系統&#xff0c;畢竟任何一個行業和企業受自身客觀環境的限制&#xff0c;但表哥嘛&#xff0c;總要有點理想和追求&#xff0c;就好比到…

02----mockjs基本使用

一.mockjs基本使用 1.安裝mockjs cnpm install mockjs --save-dev2.新建mockjs文件夾/index.js // 引入 Mock var Mock require(mockjs)// 定義數據類型 var data Mock.mock({// 20條數據"data|20": [{// 商品種類"goodsClass": "女裝",// 商品…

vuefullcalendar怎么判斷切換上下月_房間太多、樓上樓下,終極解決家里wifi信號無縫切換問題...

相信不少人有我一樣的煩惱&#xff0c;房間太多&#xff0c;或者樓上樓下&#xff0c;家里的wifi信號總是不能無縫切換。路由器放在配電箱&#xff0c;除了客廳信號不錯外&#xff0c;一旦到了其他房間&#xff0c;掉線、網速慢等問題讓人很苦惱。特別是和小伙伴一起玩游戲一邊…

C語言程序順序結構1交換變量,如何將c語言中結構體內的所有類型變量的值輸出來...

教了多年《C程序設計》課程&#xff0c;大多學生覺的這門課程難學。其實&#xff0c;按照我們現在的教學大綱和教學要求&#xff0c;只要同學們掌握一些方法&#xff0c;克服心理上畏難、不輕言放棄&#xff0c;是完全可以學好的。《C 程序設計》的內容很豐富&#xff0c;按照我…

尼古拉斯 android_圣尼古拉斯和Alexa的訪問

尼古拉斯 android祝大家圣誕節快樂&#xff0c;并祝大家晚安&#xff01; (Happy Christmas to all, and to all a good night!) Inspired by the holiday season, emerging voice-first technology, and too much eggnog — I’ve twisted the classic poem from Clement Clar…

github 進階說明

目錄 github 進階說明前言三個目錄樹重置 git reset增加路徑的reset檢出 checkout帶路徑的checkout倉庫數據對象其他資料github 進階說明 前言 我們可以什么都不管&#xff0c;照搬命令來完成我們大部分git工作&#xff0c;但是如果想要進一步&#xff0c;就要深入理解git的實現…

手把手教你 Spark 性能調優

0、背景 集群部分 spark 任務執行很慢&#xff0c;且經常出錯&#xff0c;參數改來改去怎么都無法優化其性能和解決頻繁隨機報錯的問題。 看了下任務的歷史運行情況&#xff0c;平均時間 3h 左右&#xff0c;而且極其不穩定&#xff0c;偶爾還會報錯&#xff1a; 1、優化思路 任…

pytorch線性回歸代碼_[PyTorch 學習筆記] 1.3 張量操作與線性回歸

本章代碼&#xff1a;https://github.com/zhangxiann/PyTorch_Practice/blob/master/lesson1/linear_regression.py張量的操作拼接torch.cat()torch.cat(tensors, dim0, outNone)功能&#xff1a;將張量按照 dim 維度進行拼接tensors: 張量序列dim: 要拼接的維度代碼示例&#…

軟考考前沖刺第十三章UML建模

1.如果一個對象發送了一個同步消息&#xff0c;那么它要等待對方對消息的應答&#xff0c;收到應答后才能繼續自己的操作。而發送異步消息的對象不需要等待對方對消息的應答便可以繼續自己的操作。 2.部署圖描述了一個運行時的硬件結點&#xff0c;以及在這些結點上運行的軟件組…

sqlalchemy_SQLAlchemy使ETL變得異常簡單

sqlalchemyOne of the key aspects of any data science workflow is the sourcing, cleaning, and storing of raw data in a form that can be used upstream. This process is commonly referred to as “Extract-Transform-Load,” or ETL for short.任何數據科學工作流程的…

c語言枚舉代替雙switch,C語言 使用數組代替switch分支語句降低圈復雜度

#include typedef int(*CALCULATE_FUN)(int, int); //定義函數指針typedef struct tagStruct{CALCULATE_FUN fun_name; //結構體成員&#xff0c;存放函數char calc_flag; //結構體成員&#xff0c;存放符號}CALC_STRUCT;/* 加減乘除函數聲明 */int fun_add(int x, int y);int …