BZOJ 1041 圓上的整點

2022-08-18 22:27:17 字數 598 閱讀 4757

最開始的時候想用暴力的思路,從-r搜到r,後來一看資料,毀了資料太大。接著想到優化,圓加座標可以抽象的分解為全等的八塊,因此只需求從二分之根號二r到r的整點中符合要求的,但是依然超時了,後來仔細分析了一下後發現,這根本就是一道數學題,詳解如下:

根據上述描述得到程式如下:

#include#include

#include

#include

using

namespace

std;

setint,int> >s;

long

long

intr;

void search(int x,int

y) s.insert(make_pair(tx*y,ty*y));}}

}} intmain()

}printf(

"%d\n

",s.size()*8+4);

return0;

}

感謝各位的**,希望能有所收穫,謝謝。

bzoj1041 圓上的整點(一種新奇的思路)

用了一種新奇的方法重溫了這道題目。學弟發來的定理很妙呦orz 有上述定理,則問題轉化為求r 2的 4餘1因子數 和 4餘3因子數。用約數個數定理,去掉偶因子後可以求出兩者之和 因此,求其中一種即可。從 4餘1的因子數下手吧 易知 4餘1的因子定是由任意多個 4餘1的質數和偶數個 4餘3的質數相乘得來...

bzoj 1041 HAOI2008 圓上的整點

有上述定理,則問題轉化為求r 2的 4餘1因子數 和 4餘3因子數。用約數個數定理,去掉偶因子後可以求出兩者之和 因此,求其中一種即可。從 4餘1的因子數下手吧 易知 4餘1的因子定是由任意多個 4餘1的質數和偶數個 4餘3的質數相乘得來的 任意多個 4餘1的質數實際上就是最大的 4餘1的質數的因子...

bzoj 2178 圓的面積並

給出n個圓,求其面積並 先給乙個數字n n 1000 接下來是n行是圓的圓心,半徑,其絕對值均為小於1000的整數 面積並,保留三位小數 自適應辛普森。留個模板好了 include include include include includeusing namespace std const do...