地址:
http://contesthunter.org/contest/CH%20Round%20%2349%20-%20Streaming%20%234%20(NOIP模拟赛Day2)
解析1:n x m 的点阵 n 就行 m是列 l 就要放的长度:num 是能放的方法的总数
一:只考虑横 和 竖 来放 那么 一共有: m*(n-l+1)+ n*(m-l+1)
二:考虑斜着放: 加入能放的下:a*a + b*b = l*l ------> 2*(n-a+1)*(m-b+1) + 2 *(n-b+1)*(m-a+1)
解析2:
这一题的关键是怎么斜着放,这就个数学知识:(注意,a b l 都为正整数)
①:当:a*a + b*b = l*l 时候,gcd(a,b,l) == 1 ,也就是说,a,b,l两两 互质
②:当:a*a + b*b = l*l 时候,l - a ==完全平方数 或者 完全平方数的2倍。
代码 + 性质证明:
随后