【題解】BZOJ 2721 [Violet 5]櫻花
求出有多少對 滿足
首先是對公式進行變形
接下來我們令 , 。就變成了 。
這下問題就轉化成求
我們寫出 的唯一分解式:
則
那麼 的約數個數等於
直接計算即可。
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#define N 10000000
#define P 1000000007
int prime[N], number[N], f[N];
int main() {
int n; int cnt = 0;
scanf("%d", &n);
for (int i = 2; i <= n; i++) { // 線性篩
if (f[i] == 0) {
cnt++;
prime[cnt] = i;
f[i] = cnt;
}
for (int j = 1; j <= cnt; j++){
if (prime[j] * i > n) break;
f[prime[j] * i] = j;
if (i % prime[j] == 0) break;
}
}
for (int i = 2; i <= n; i++) {
int x = i;
while (x != 1) { // 分解 i
int j = prime[f[x]];
while (x % j == 0) {
number[f[x]]++;
x /= j;
}
}
}
long long sum = 1;
for (int i = 1; i <= cnt; i++) // 計算結果
if (number[i] != 0)
(sum *= (2ll * number[i] + 1ll)) %= P;
printf("%lld\n", sum);
return 0;
}
相關推薦
【題解】BZOJ 2721 [Violet 5]櫻花
傳送門 DescriptionDescription 求出有多少對 (x,y)(x,y) 滿足 1x+1y=1n!1x+1y=1n! SolutionSolution 首先是對公式進行
bzoj 2721[Violet 5]櫻花 數論
wid problems str long 就是 mem content put etc [Violet 5]櫻花 Time Limit: 5 Sec Memory Limit: 128 MBSubmit: 671 Solved: 395[Submit][Stat
BZOJ 2721: [Violet 5]櫻花
(X-N)(Y-N)=N^2 #include<cstdio> using namespace std; const int mod=1e9+7; int n,cnt,isprime[1000005],prime[1000005]; void Pre_prime(){ for
【題解】BZOJ 2005 [Noi2010]能量採集
傳送門 DescriptionDescription 根據題目描述以及最基礎的找規律(真的很基礎),答案就是 ∑i=1n∑j=1m(2gcd(i,j)−1)=2∑i=1n∑j=1mgcd(i,j)
【題解】BZOJ 4458 GTY的OJ
傳送門 DescriptionDescription 給定一棵 nn 個結點的樹,每個結點有一個點權 aiai。選出 mm 條不重複的路徑,滿足路徑上的結點數在 [l,r][l,r] 範圍內。求點權和的最大值。 SolutionSolution 這道
【bzoj2721】[Violet 5]櫻花
n! tmp 代碼 include 什麽 TP ctime col style 題目傳送門:https://www.lydsy.com/JudgeOnline/problem.php?id=2721 好久沒做數學題了,感覺有些思想僵化,走火入魔了。 這道題就
【BZOJ】【P2724】【Violet 6】【蒲公英】【題解】【分塊】
區間眾數,分塊亂搞,維護每個塊之間答案,詢問sqrt(n)logn Code: #include<cstdio> #include<cmath> #include<vector> #include<map> #include
【BZOJ】【P2073】【POI2004】【PRZ】【題解】【狀壓DP+列舉子集】
狀壓DP+列舉子集 Code: #include<bits/stdc++.h> using namespace std; int n,W; int w[18],t[18]; int dp
【BZOJ】【P2212&P3702】【Poi2011】【Tree Rotations】【二叉樹】【題解】【啟發式合併】
啟發式合併不解釋 Code: #include<bits/stdc++.h> using namespace std; const int maxn=4e5+5; struct node{ int val,key,size,s; nod
【BZOJ】【P2530】【Poi2011】【Party】【題解】【水題】
最近兩天頹的厲害啊唉…… ==============分割線==================== 讓在團裡的和不在團裡的兩兩抵消,剩下的就是 Code: #include<bits/std
【BZOJ】【P3505】【CQOI2014】【數三角形】【題解】【組合數】
C(nm,3)-共線 直線共線 C(n,3)*m+C(m,3)*n 列舉斜著的矩陣, 矩陣上有gcd(i,j)-1個點,有(n-i)*(m-j)個矩陣,反方向*2 完了 Code: #include
【BZOJ】【P1468】【Tree】【題解】【點分治】
剛學點分治,簡要的記錄一下 每次選擇一個點把這棵樹分成幾個不相交的子樹 挑一個使得最大子樹size最小的點 計算過這個點的答案 遞迴處理這幾個子樹 Code: #include<cstdio&
【BZOJ】【P3265】【志願者招募加強版】【題解】【單純形法】
讀了一天算導,成功yy出單純形~~ Code: #include<bits/stdc++.h> using namespace std; const int maxn=10010; co
【BZOJ】【P3534】【Sdoi2014】【重建】【題解】【矩陣樹定理】
dt學了矩陣樹定理 鄰接矩陣中的的權可以不是1,而是其他權值,比如概率 這樣計算出來的就是所有生成樹的概率和,即 但是這樣不對…… 生成一顆生成樹T的概率應該是 接著就是神奇的轉換 設G要求的矩陣,P是給出的矩陣 我們令 對G計算n-1階主子式,即有 那麼把它
【題解】洛谷P1217[USACO1.5]迴文質數 列舉
題目連結 #include <bits/stdc++.h> using namespace std; long long sushu(long long x,long long y){ int i,i1,i2,i3,i4,flag=0;
【轉】MYSQL-CLUSTER-7.5搭建數據庫集群
安裝教程 讀寫 固定 現在 note res 順序 遠程訪問 關閉 閱讀目錄 前言 mysql cluster中的幾個概念解釋 架構圖及說明 下載mysql cluster 安裝mysql cluster之前 安裝配置管理節點 安裝配置數據和mysql節點
【題解】coin HDU2884 多重背包
max-width urn msd 多重背包 cbo time lee tmg sin 題目 Coins Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
【題解】逐個擊破 luogu2700
white cdt ldl 離開 ros print .aspx -h ftw 題目 題目描述: 現在有N個城市,其中K個被敵方軍團占領了,N個城市間有N-1條公路相連,破壞其中某條公路的代價是已知的。 現在,告訴你K個敵方軍團所在的城市,以及所有公路破壞的代價,
【題解】SHOI2001化工廠裝箱員
span 暴力 bits a + b return 很多 problem min efi ————傳送:洛谷P2530 這道題目還是挺簡單的,狀態也容易想到。 數據範圍非常的小,所以即便是很多維度,復雜度也完全可以接受。定義狀態:dp[i][a][b][c]為手上的貨物拿到
【題解】ZJOI2008騎士
urn 十分 cnp gree arch 沒有 mark target true 樹型打牌:洛谷P2607 這道題目一開始沒有想到解法,只是想到沒有上司的舞會,覺得十分的類似呀。 之後發現:n個點,n條邊,只要刪去一條邊,就變成了和上題一模一樣的做法。 那麽考慮刪去的這條邊