利用找因子来找方程解的个数
来源:互联网 发布:java wait函数 编辑:程序博客网 时间:2024/04/29 04:14
有一些方程要求我们求它的正整数解有多少个,现在我们就来解决一些方程。
题目一: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中满足条件的个数。
- 利用找因子来找方程解的个数
- HDU1299&&SPOJ - KPEQU(找因子来找解的个数)
- HDU1299&&SPOJ - KPEQU(找因子来找解的个数)
- 练习二 1001找方程的解
- 找0的个数
- 【杭电2199】找方程的解 (二分法)
- hdu1286 找新朋友 (同因子个数)
- 找最小的K个数
- 找最大的N个数
- 找最大的N个数
- 找最大的k个数
- 找最小的K个数
- 找最小的K个数
- 找含有49的个数
- 练习二1001 找方程解
- 水题。。。找因子
- 找来的一些资料
- ZOJ 3228 找AC自动机找来的TRIE树
- 版本控制软件SourceAnywhere VS VSS功能对比评测
- 实施PACS系统要解决的关键问题
- 推荐一个JS弹出窗口LightFace
- Linux芯片级移植与底层驱动(基于3.7.4内核)
- Eclipse插件EGIT的安装与使用
- 利用找因子来找方程解的个数
- 中断系统
- U_BOOT_CMD 命令实现分析
- c#窗体间的传值
- Python Challenge 06 Solution
- 了解天才科学家的研究历程,了解知识贴近生活的一面,学习就是一件充满乐趣的事儿
- Mac svn命令 linux同样适用
- Opengl真实感球绘制
- Android DecorView浅析