zoj 1476 Weird Clock(糾結的水題)

來源:互聯網
上載者:User

題意:


有個奇異的時鐘只有分鐘的指標,一開始停在s分處,然後現在有d類型的硬幣,投入進去會使時鐘走d*s步,問需要幾個這樣的硬幣。


分析:


題目不難,看懂了就應該知道是標記的運用,正因為不難,我開始沒看題目就刷刷寫好,提交WA,在看看了看題目才發現是問需要幾個硬幣能使指標回到0。接下來由悲劇了一次用了個1~1000的迴圈(這是d的範圍>_<) 所以說很糾結的一道。

因為走的路程都是一樣的,所以當某個點重複了以後就不可能走出來了。

#include <stdio.h>#include <string.h>int main(){int s,d,i,sum;//這裡限定的是d的範圍而不是num的範圍,題目第二次理解錯,不要因為題目簡單就不仔細看題。int flag[60];//正確的做法是標記每個位子如果出現第二次,則重複了,就不可能達到0while(scanf("%d%d",&s,&d)!=EOF){sum=s;i=0;if(s==0&&d==0) break;memset(flag,0,sizeof(flag));while(1){s=(s+s*d)%60;i++;flag[s]++;if(s==0) break;if(flag[s]==2) break;}if(s==0) printf("%d\n",i);else printf("Impossible\n");}return 0;}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.