求∑i
=1n(
−1)∑
mj=1
d(i∗
j)其中d(i)表示i的因子個數。
n<=10^7,m<=10^14
既然是-1的次冪,那麼我們就來分析一下奇偶性吧。。。
這裡有乙個很(不)顯然的性質,d(n)是奇數當且僅當n是乙個完全平方數。
然而我比賽3個小時都沒有想出來233
那麼我們就是要求對於每個i有多少個j(1<=j<=m)滿足i*j是完全平方數。
那麼我們把i寫成p*q^2的形式,p沒有完全平方因子。那麼j就可以寫成p*q1^2
在1~m就有mp
−−√
#include
#include
#include
#include
#define fo(i,a,b) for(int i=a;i<=b;i++)
#define n 10000005
using
namespace
std;
typedef
long
long ll;
typedef
double db;
int ans,n,p[n],bz[n],t[n];
ll m;
int main()
t[k]=t[i]*p[j];}}
fo(i,1,n)
printf("%d",ans);
}
NOIP2016提高組模擬 積木
比賽的時候用了個神奇的小暴力,本來打算拿40分,沒想到暴力出奇蹟,隨機資料下表現優良,居然碾過去了。暴力方法不講,只貼 僅供對拍。正解顯然要用狀態壓縮 看資料範圍 設fs i,0 1 2 s表示當前已選擇的積木集合,i表示在最上方的積木編號,0 1 2表示最上方的積木哪面朝上。轉移方程容易推導。暴力...
計數 NOIP2016提高A組模擬7 15
樣例輸入 2 10 樣例輸出 90資料範圍 剖解題目 題目說的很明了了。思路 求方案數,一般會設計道dp,規律之類的。解法 數字dp,設f i j 表示當前到了第i位,這一位的數字是j的方案數。自然有 f i j f i 1 l f i j 0 l k 且 l 0 and j 0 看到這位數,很明顯...
NOIP2016提高A組模擬9 2 單峰
問1 n,n個數的全排列中有多少個滿足單峰序列的性質,並把答案mod 1e9 7 這題還是很簡單的,一開始打了乙個50分的做法,然後發現答案就是2n 1,然後沒有發現輸入也會爆,於是就得了50分 我們容易發現峰一定是最大的那個數,我們把峰放到每乙個位置上,然後在往峰的左邊隨便填一些數,每種填數的方法...