有上述定理,則問題轉化為求r^2的 %4餘1因子數 和 %4餘3因子數。
用約數個數定理,去掉偶因子後可以求出兩者之和
因此,求其中一種即可。
從%4餘1的因子數下手吧
易知%4餘1的因子定是由任意多個%4餘1的質數和偶數個%4餘3的質數相乘得來的
任意多個%4餘1的質數實際上就是最大的%4餘1的質數的因子數,上約數個數定理
取偶數個%4餘3的質數怎麼求呢?入門dp……
#include
#include
#define ll long long
#define n 80
using namespace std;
int n,cnt;
ll mo[3],ans;
struct nodeu,q[n];
ll f[n][2];
int main()
}if(n>1)
}f[0][0]=1;
for(i=1;i<=cnt;i++) f[i][0]=f[i-1][0]*(
q[i].k/2+1)+f[i-1][1]*((q[i].k+1)/2),
f[i][1]=f[i-1][0]*((q[i].k+1)/2)+f[i-1][1]*(
q[i].k/2+1);
mo[1]=mo[1]*f[cnt][0],mo[2]=mo[0]-mo[1];
ans=4
*(mo[1]-mo[2]);
printf("%lld\n",ans);
}
BZOJ 1041 圓上的整點
最開始的時候想用暴力的思路,從 r搜到r,後來一看資料,毀了資料太大。接著想到優化,圓加座標可以抽象的分解為全等的八塊,因此只需求從二分之根號二r到r的整點中符合要求的,但是依然超時了,後來仔細分析了一下後發現,這根本就是一道數學題,詳解如下 根據上述描述得到程式如下 include include...
BZOJ1055 HAOI 玩具取名
某人有一套玩具,並想法給玩具命名。首先他選擇wing四個字母中的任意乙個字母作為玩具的基本名字。然後 他會根據自己的喜好,將名字中任意乙個字母用 wing 中任意兩個字母代替,使得自己的名字能夠擴充得很長。現在,他想請你猜猜某乙個很長的名字,最初可能是由哪幾個字母變形過來的。第一行四個整數w i n...
BZOJ 1046 HAOI 上公升序列
1046 haoi2007 上公升序列 time limit 10 sec memory limit 162 mbsubmit 5376 solved 1862 submit status discuss description 對於乙個給定的s 若有p 滿足 x1 x2 xm 且 ax1 2 出s...