解鎖成就:死於看成平面幾何題將乙個邊長為 n
'>n 的正方形裁剪成四個直角三角形。注意面積不能為 0
'>0
。三個必要的切割中的兩個始終從乙個角落g進行(圖中g位於a,實際上也可以是b、c、d),第三次切割必須垂直於前面兩個之一(在圖中,ae部分垂直於ef部分)。
切割機僅接受整個座標值,這意味著n必須是整數的,並且點e和f的座標必須是整數的。 有時候這可能是不可能的。
編寫乙個程式,根據給出的 n
'>n
,確定是否可以將四邊形的正方形三角形切割成四個矩形三角形,如果可能的話,可以採用多少種方法來完成。
每行乙個整數 n
'>n,以 0
'>0
結尾每行乙個整數表示方案數,方案不同當且僅當 e、f、g 的座標不同
10
20100
320
0872
24
對於 40% 的資料,n≤10^7
對於另 10% 的資料,n 是質數
對於 100% 的資料,n≤10^14,不超過5組資料
時間限制 1 s
空間限制 512 mb
畢竟資訊用的數學和數學競賽還是不大一樣啊……
這裡非常重要的一步是從a=(n-x)*x/n想到劃分剩餘類。
於是最樸素的解法就是列舉x.
注意到x有乙個充要的命題:
注意是向上取整。
由於x的取值是$[1,n)$,所以x的個數就是:
化簡一下可以得到:
就可以了。
1 #include2 typedef longendlong
ll;3
const
int maxn = 10000000;4
5int pr[800035];6
bool vis[10000035];7
ll n,cnt;89
void
makeprime()
1019}20
}21ll qmi(ll a, ll b)
2229
return
ret;30}
31int
main()
3245 printf("
%lld\n
",cnt*8ll-8ll);46}
47return0;
48 }
機房測試8 29
其他同學說馬上開學了,我說 在學校呆了一整年了。bluetrex是真的恐怖,考試題都是gal,據說明天題目 殼女?比逛公園簡單 但我爆了。dag上的dp dfs也可。l放在外面,經過的景點數作為乙個維度。include include include define fn park const int...
釘子與木板
3.釘子與木板 30分 問題背景 牆上有n個釘子,編號為1,2,n。其中釘子i的橫座標為i,縱座標初始為xi。可以進行兩種操作 0 k v 豎直移動釘子k,座標變為 k,v 1 s t v 若在高度為v處放一塊橫座標範圍是 s,t 的水平木板,它將下落到什麼高度?換句話說,求出釘子s,s 1,s 2...
牛牛的木板
題意 牛牛從牛畢那裡拿了一根長度為n的白木板,木板被等分成了n段 沒有被切割,只是虛擬劃分成了n段 其中有些段被牛畢用顏料染成了黑色。牛牛非常不喜歡黑色,它找來了一桶清洗劑決定對木板進行清洗,但是牛牛發現自己的清洗劑最多只能清洗m段。清洗完後,牛牛會把木板鋸成純色的幾段。例如假設木板是 黑黑黑白白白...