模擬 想法 HDU 6551 Clock

2021-09-26 23:55:27 字數 1161 閱讀 4430

題目鏈結

題意:給定此時的時間

再給定n個鐘錶上的其他時間

問從此刻的時間開始,將這n個鐘錶上所有時間都走完一遍時,秒針轉過的最小角度

思路:只存在四種情況:

①只順時針走

②只逆時針走

③先順時針走再逆時針走

④先逆時針走再順時針走

模擬即可,剛開始模擬寫的超級複雜。。。乙個勁地wa…後來改了寫法,簡單了很多而且特別容易想明白

記錄此刻的時間到每乙個給定時間的順時針走的角度

從大到小排序

相應的逆時針走的角度也可以表示出來。

然後 只順時針或只逆時針簡單,這裡省略 不解釋啦

先順時針再逆時針則是 遍歷到達每個點

到達第i個點順時針走的距離2+到達第i+1個點逆時針走的距離

先逆時針再順時針則是 遍歷到達每個點

到達第i個點逆時針走的距離2+到達第i-1個點順時針走的距離

上述過程不斷更新最小值即可

**:

#include

using namespace std;

typedef

long

long ll;

const ll maxn =

87000

;ll shun[maxn]

;int

main()

sort

(shun +

1, shun + n +1)

; ll minn =

360*60*

12+1000000

; shun[n +1]

=360*60

*12, shun[0]

=360*60

*12; minn =

min(minn, shun[n]);

minn =

min(minn,

360*60*

12- shun[1]

);//for(i=1;i)

for(ll i =

1; i <= n; i++

)for

(ll i =

1; i <= n; i++

)printf

("%lld.00\n"

, minn);}

}

HDU 5635 思維想法題

peter has a string s s1s2.sn,let suffi sisi 1.sn be the suffix start with i th character of s.peter knows the lcp longest common prefix of each two ad...

HDU 5983 模擬魔方 模擬

題意是說給定乙個 2 2 魔方的各個面的情況,問是否能轉動不超過一次使得魔方復原。思路是先在輸入的時候統計一下已完成的面數,要想以最多一次的轉動使得魔方復原,那麼已完成的面數只能是 2 面或者 6 面,此處可剪枝。若已完成 6 面,那麼一定可以復原 若已完成 2 面,則要用一次轉動完成其他六面,開始...

hdu4415 不錯的想法題

題意 乙個人他有一定的血,有一些怪物,他去殺怪物,有的怪物殺死他後還可以在不費自己血的情況下任意殺死一些怪物,問你他最多殺死多少怪物,在最多殺怪前提下最好用多少血,大體題意是這樣 思路 首先我們把怪物分成兩個集合,a乙個是殺死他後可以免費殺死其他人的,b另乙個是殺死他後不能免費殺死其他人的,分析下我...