日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【BZOJ】【1041】【HAOI2008】圆周上的点

發布時間:2023/12/1 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【BZOJ】【1041】【HAOI2008】圆周上的点 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

數學


  orz hzwer

  完全不會做……

  很糾結啊,如果將來再遇到這種題,還是很難下手啊……

?

引用題解:

【分析】:

樣例圖示:

首先,最暴力的算法顯而易見:枚舉x軸上的每個點,帶入圓的方程,檢查是否算出的值是否為整點,這樣的枚舉量為2*N,顯然過不了全點。

然后想數學方法。

有了上面的推理,那么實現的方法為:

枚舉d∈[1,sqrt(2R)],然后根據上述推理可知:必先判d是否為2R的一約數。

此時d為2R的約數有兩種情況:d=d或d=2R/d。

第一種情況:d=2R/d。枚舉a∈[1,sqrt(2R/2d)] <由2*a*a < 2*R/d轉變來>,算出對應的b=sqrt(2R/d-a^2),檢查是否此時的A,B滿足:A≠B且A,B互質 <根據上面的推理可知必需滿足此條件>,若是就將答案加1

第二種情況:d=d。枚舉a∈[1,sqrt(d/2)] <由2*a*a < d轉變來>,算出對應的b=sqrt(d-a^2),檢查是否此時的A,B滿足:A≠B且A,B互質 <根據上面的推理可知必需滿足此條件>,若是就將答案加1

因為這樣只算出了第一象限的情況<上面枚舉時均是從1開始枚舉>,根據圓的對稱性,其他象限的整點數與第一象限中的整點數相同,最后,在象限軸上的4個整點未算,加上即可,那么最后答案為ans=4*第一象限整點數+4

?

【時間復雜度分析】:

枚舉d:O(sqrt(2R)),然后兩次枚舉a:O(sqrt(d/2))+O(sqrt(R/d)),求最大公約數:O(logN)

1 /************************************************************** 2 Problem: 1041 3 User: Tunix 4 Language: C++ 5 Result: Accepted 6 Time:192 ms 7 Memory:816 kb 8 ****************************************************************/ 9 10 //BZOJ 1000 11 #include<cmath> 12 #include<cstdio> 13 using namespace std; 14 typedef long long LL; 15 typedef double lf; 16 /******************tamplate*********************/ 17 LL r,ans; 18 LL gcd(LL x,LL y){return y?gcd(y,x%y):x;} 19 bool check(LL y,lf x){ 20 if (x==floor(x)){ 21 LL x1=x; 22 if (gcd(x1*x1,y*y)==1 && x1*x1!=y*y) 23 return 1; 24 } 25 return false; 26 } 27 int main(){ 28 scanf("%lld",&r); 29 for(LL d=1;d<=sqrt(2*r);d++) 30 if (2*r%d==0){ 31 for(LL a=1;a<=(LL)sqrt(2*r/(2*d));a++){ 32 lf b=sqrt((2*r)/d-a*a); 33 if (check(a,b))ans++; 34 } 35 if (d!=2*r/d){ 36 for(LL a=1;a<=(LL)sqrt(d/2);a++){ 37 lf b=sqrt(d-a*a); 38 if (check(a,b))ans++; 39 } 40 } 41 } 42 printf("%lld\n",ans*4+4); 43 return 0; 44 } View Code

1041: [HAOI2008]圓上的整點

Time Limit: 10 Sec??Memory Limit: 162 MB
Submit: 2376??Solved: 1019
[Submit][Status][Discuss]

Description

求一個給定的圓(x^2+y^2=r^2),在圓周上有多少個點的坐標是整數。

Input

r

Output

整點個數

Sample Input

4

Sample Output

4

HINT

n<=2000 000 000

Source

[Submit][Status][Discuss]

轉載于:https://www.cnblogs.com/Tunix/p/4428004.html

總結

以上是生活随笔為你收集整理的【BZOJ】【1041】【HAOI2008】圆周上的点的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 欧美一区高清 | 椎名由奈在线观看 | 亚洲精品免费在线观看视频 | av观看在线免费 | av青娱乐 | 精品无码久久久久久久久成人 | 日韩手机看片 | 午夜精品网站 | 国产性猛交普通话对白 | 色多多视频网站 | 亚洲大乳| 久久国产一级 | 亚洲欧洲成人精品久久一码二码 | 女生下面流水视频 | 无遮挡裸光屁屁打屁股男男 | av大片在线播放 | 一区二区成人精品 | 国精无码欧精品亚洲一区蜜桃 | 香蕉爱视频 | 亚洲乱妇老熟女爽到高潮的片 | 国产精品一区二区三区免费看 | av鲁丝一区鲁丝二区鲁丝 | 国产卡一卡二 | 久久久九九九热 | 久久久久久综合网 | 九热精品视频 | 在线观看日韩av电影 | 伊人欧美| 成人在线免费网站 | 国产永久免费无遮挡 | 色偷偷网站 | 成人av动漫在线 | 七月丁香婷婷 | 天堂网ww| 成人私密视频 | 欧美激情黑人 | 人妻体体内射精一区二区 | 性chinese天美传媒麻 | 久久精品国产亚洲7777 | 91在线导航| 亚洲色图国产 | 国产精品宾馆在线精品酒店 | 精品久久久一区 | 亚洲欧美成人综合 | 亚洲男人的天堂在线观看 | 北岛玲av在线 | 九九热视频在线免费观看 | 久久久久激情 | 精品在线观看视频 | 三上悠亚激情av一区二区三区 | 在线欧美激情 | 成人性视频网 | 久久久久久久久久久久久女过产乱 | 欧美理论在线观看 | 怒海潜沙秦岭神树 | 青草一区二区 | 免费视频一区 | 免费的av网址 | 日本免费一二区 | 国产一级性生活 | 成人深夜网站 | 能在线观看的av网站 | 少妇在军营h文高辣 | 爱色成人网 | wwwwww色 | 久久美女精品 | 午夜在线观看免费视频 | 伊人视频在线观看 | 免费av网址在线观看 | 大白屁股一区二区视频 | 亚洲网址在线观看 | 色婷婷六月 | 亚洲精品视频免费在线观看 | 操批网站| 欧美大白bbbb与bbbb | 亚洲资源网 | 青青草原综合久久大伊人精品 | 国产一区91 | 欧美色激情 | av片免费在线播放 | 国产精品美女毛片真酒店 | 三级影片在线免费观看 | 成人免费xxxxx在线观看 | 亚洲精品20p | 欧美顶级毛片在线播放 | 日日碰日日操 | www.777含羞草| 日韩一级在线观看 | 美日韩精品一区二区 | 一级黄视频 | 中文字幕有码在线播放 | 中文字幕第一页亚洲 | 亚洲一区网 | 五月天激情电影 | 久久加勒比| 国产麻豆一区 | 加勒比一区二区 | 一区二区欧美日韩 | 波波野结衣 |