zcmu—1980
1980: 不存在的泳池
Time Limit:?1 Sec??Memory Limit:?128 MBSubmit:?89??Solved:?28
[Submit][Status][Web Board]
Description
小w是云南中醫學院的同學,有一天他看到了學校的百度百科介紹:
截止到2014年5月,云南中醫學院圖書館紙本藏書74.8457萬冊,紙質期刊388種,館藏線裝古籍圖書1.8萬冊,電子資源總量35TB,擁有中、外文數據庫25個,電子圖書29.5萬冊(鏡像)、包庫130萬冊。古籍線裝圖書1.8萬余冊,有39種列為本館珍善本,如《徹滕八編》、《趙氏醫貫》等明清版本、臺灣文淵閣版本《四庫全書》,按《全國古籍善本書總目》分類表(即:經·史·子·集四部分類)部編列、上架、供讀者使用。
顯然學校圖書館的占地面積非常大,于是他開始想象.....如果他有一個跟圖書館一樣大的游泳池?!
如果有一個那么大的游泳池,他就可以邀請女神一起去游泳...
如果有一個那么大的游泳池,他還可以劃開一半出租,收取門票費賺錢...這樣等賺了一些錢之后,就招一些游泳教練來,然后對外招生,招收學生繼續賺更多的錢!
如果有一個那么大的游泳池,他還能把泳池里的水全部放光...開一個呂子喬心目中最大最棒的泳池派對!
.......
等有了更多的錢,就可以在第一個泳池旁邊再建一個一樣大的泳池......
小w一邊流口水一邊想自己的未來,一想到女神看到自己事業有成,靠一個游泳池白手起家發家致富,對自己投懷送抱,高興的根本合不攏嘴。
這時候旁邊的小q作為小w的室友,隨口提了一句:“這么大的泳池,你怎么換水?”
顯然小w是個有原則的人,他不會讓自己的泳池像不法商家一樣不換水,用不干凈的水給別人使用或者給自己使用。
小w百度了之后發現...淘寶里有一家店賣一種一次性抽水機,這種一次性抽水機很神奇,它有兩個按鈕:
1.如果泳池里的水(立方米)是3的倍數,那么可以按第一個按鈕讓它抽走泳池里三分之二的水
2.如果泳池里的水(立方米)是2的倍數,那么可以按第二個按鈕讓它抽走泳池里二分之一的水
小w雖然是個有原則的人,但是作為一個商人,他需要節省錢...而且他現在有兩個泳池....但是顯然這種抽水機不能把水抽光,水越少,性價比就越低。
但是兩個泳池建在一起,如果兩個泳池的水面不一樣高,那么小w會很不開心,所以他想用這種抽水機,把兩個泳池里的水抽成一樣多。然后再考慮別的....當然在保證能把兩個泳池里的水抽成一樣多的情況下..他希望花的錢最少...
(不管了!好看最重要,好看才能吸引顧客啊!先好看!再考慮怎么換水吧)
Input
多組測試數據,給出A,B表示兩個泳池當前的水量(立方米)
(1<=A,B<=10^9)
Output
每組測試數據輸出一個整數表示至少需要買多少個一次性抽水機,若買多少個都不能讓泳池的水相等,則輸出"-1"
Sample Input
5 2014 86 6Sample Output
2-10HINT
?顯然這一切都是他的YY,他怎么可能會有游泳池???
解析:
多種做法,我想到的是公約數,既然它們要相等,那就說明它們都可以與2 ?3整除到某一個數,若這個數相等說明可以,否則輸出-1;
代碼:
#include<cstdio> #include<cstring> #include<algorithm> using namespace std;int gcd(int x,int y) {return y==0?x:gcd(y,x%y); } int main() {int a,b;while(~scanf("%d%d",&a,&b)){int t=0;if(a==b){printf("0\n");continue;}int c=gcd(a,b);a/=c;b/=c;if(a%2==0){while(a%2==0){a/=2;t++;if(a%2)break;}}if(a%3==0){while(a%3==0){a/=3;t++;if(a%3)break;}}if(b%2==0){while(b%2==0){b/=2;t++;if(b%2)break;}}if(b%3==0){while(b%3==0){b/=3;t++;if(b%3)break;}}if(a==b)printf("%d\n",t);else printf("-1\n");}return 0; }與50位技術專家面對面20年技術見證,附贈技術全景圖
總結
- 上一篇: 女生学计算机未来出路,计算机真的已经烂大
- 下一篇: php订阅号借权,php订阅号借权