Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
Re:一种用最少步骤求解的方法In Reply To:一种用最少步骤求解的方法 Posted by:Berry at 2006-09-03 10:47:02 更正一下: > 输入的三个数:a,b,n; > 由题不定方程ax+by=n必定有解 > 如果b=n,则fill B即可,否则用试探法求出这样的两组解(a1,b1)及(a2,b2),其中a1 >0,b1<0;a1是满足方程的最小正整数;a2<0,b2>0,a2是满足条件的最大负整数; > (i) 如果|a1|+|b1|<|a2|+|b2|-1,则fill A a1次,每次fill A后,pour到B,如果B满则empty B,再将A中剩下的pour到B,这样empty B |b1|次以后,即可得解;(因为a*a1+b*b1=n) > (ii)如果|a1|+|b1|>=|a2|+|b2|-1,则fill B b2次,每次fill B后,pour到A,如果A满则empty A,再将B中剩下的pour到A,这样经过empty A |a2|-1次以后,再将A装滿,B中剩下的就是n了; > > Sample Input > > 3 5 4 > 5 7 3 > 3x+5y=4的两组解为(2,-1),(-2,2) > 2+1=1+2; > 用方法II:(fill B两次,empty A 一次) > fill B (第一次fill B) > pour B A > empty A (A 滿清空A)(这里只需要清一次A,因为a2=-1) > pour B A (B中剩下的到A) > fill B (第二次fill B) > pour B A (装滿 A,B中剩下的即为n) > success > > 5x+7y=3的两组解为(2,-1)(-5,4) > 2+1<5+4 > 用方法I:(fill A 两次empty B 一次) > fill A (第一次fill A) > pour A B > fill A (第二次fill A) > pour A B > empty B > pour A B > success Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator