利用找因子来找方程解的个数
有一些方程要求我們求它的正整數解有多少個,現在我們就來解決一些方程。
?
題目一:HDU1299
題意:給出n的值,求方程滿足條件:x<=y且x,y都是正整數解的個數。
解析:實際上就是先令y=n+k,帶入解之:
?
?
然后就是求n^2的因子個數問題了。
?
題目二:HIT2893
題意:設方程是,輸入一個數N,注意N可能為負數,然后求有多少個正整數x,y滿足此方程。
解析:跟上題一樣的方法。
題目三:NEFU647
題意:,輸入m,n,問有多少個x,y符合此方程,x,y都大于1,x<=y。
解析:本題先對m,n約分,然后可以先變形:
把mx,my當整體,分別是X,Y,然后就跟HDU1299的方法一樣,這里要先求出所有因子,求出所有因子后,可以計算出X,Y然后判斷對應的X,Y能否都整除m,如果都整除就count++
這里主要想重點說一下如何快速求一個數的因子:
先對要求的數n素因子分解,然后深搜就可以了。
void dfs(LL dep, LL product=1) {if(dep==c){arr[cnt++]=product;return;}for(int i=0;i<=a[dep];i++){dfs(dep+1,product);product*=p[dep];} }
?
題目四:SPOJ1434?
題意:對于方程,輸入N,求有多少個x,y滿足此方程,其中x<=y.
解析:我就不說跟上面的題是一樣的方法了,注意N!可以很大,用Java的BigInteger做。
?
?
題目五:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1165
?
題意:給定一直角三角形的周長L,求有多少個這樣的直角三角形。注意這里數據很多,50000組,且L<10^7
?
?
分析:
由:,消去z得到:,把x,y,z都表示出來后發現只要y是整數,那么x,z也就是整數了。我們進一步令,我們得到:,根據x,y,z的范圍我們可以確定出k的范圍滿足,所以問題就轉化為求因子fac中滿足條件的個數。
?
總結
以上是生活随笔為你收集整理的利用找因子来找方程解的个数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: DOM解析XML
- 下一篇: HDU4267(2012长春网络赛)