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 |
一种用最少步骤求解的方法输入的三个数: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|,则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|,则fill B b2次,每次fill B后,pour到A,如果A满则empty A,再将B中剩下的pour到A,这样经过empty A |a2|次以后,再将A装滿,B中剩下的就是n了; Sample Input 3 5 4 5 7 3 3x+5y=4的两组解为(2,-1),(-1,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