12 7 比賽題解

2021-09-02 19:22:58 字數 1319 閱讀 4685

這個題的意思就是對於給定的數x,找到兩個數a,b滿足以下條件:

可以看出a,b是不唯一的,所以這道題是spj,那我們只要找到最好找的就好了。a * b 最大的時候,就是a == b == x對吧,正好這時候也滿足題目中的其它要求。如果x * x 都不滿足大於 x 這個條件的話,肯定就無解了,所以我們只需要判斷這個條件就好了,想明白之後,**就很簡單了。

#includeint main()

題意大致就是petya想要邀請他的朋友,然後就發請柬。每個請柬,需要兩張紅色紙,張綠色紙和張藍色紙。商店**各種顏色的筆記本,但每個筆記本只包含一種顏色

的紙k張

。找到petya需要購買的最少數量的膝上型電腦來邀請他的朋友們。

思路就是把各色的紙一共多少張算出來,然後除以k就知道各色的本子要買多少了,把各色的本子個數加起來就是題目中需要輸出的結果。

如果除以k除不盡的話需要向上取整,這裡用到了ceil()函式,不了解的點此鏈結學習:

#include#includeint main()

題意就是有n個飛機場按順序排列,飛機場有兩種型別,要麼是0,要麼是1,從乙個飛機場飛到另乙個相同型別的飛機場花費0,飛到不同型別的飛機場花費為兩個飛機場間的距離。問從a飛到b的最少花費,中間可以降落。 

一開始是不是感覺沒有什麼思路?但是我們可以這樣想,飛機從起點到終點的過程中是可以降落的,如果起點和終點相同的話,一直飛就好了,用不著中轉對吧。但是,如果我們起點和終點不一樣,想要花費最小的話,中間是一定要中轉的,那麼問題來了,怎樣中轉,在哪兒轉機。這樣的話我們假設起點為1,終點為0,那麼從起點到終點的過程中肯定有兩個相鄰的機場是這樣的:10,仔細想想是不是。想明白之後肯定就知道了吧,我們讓飛機停在1機場,此時花費為0,然後從1機場起飛在相鄰的0機場降落,這樣的話因為是相鄰機場花費為1,此時,機場就和終點的機場一樣了,直飛就好了,花費為1。所以程式就是起點和終點相同的時候輸出0,不相同的時候輸出1。

#includeint main()

題意就是給你兩個正整數n,s。n代表有面值為1~n的硬幣無數個,s代表總價值。題目要求挑出最少的硬幣個數使得這些硬幣的面值之和為s。

給你的硬幣不限個數,那肯定是先拿最大的啊,拿完最大的差幾就用面值為幾的硬幣補上,所以就得出結論

s % n == 0 ? s / n : s / n + 1;

#includeint main()

題解 騎車比賽

描述 小信準備去參加騎車比賽,比賽在 n 個城市間進行,編號從 1 到 n。選手們都從城市 1 出發,終點在城市 n。已知城市間有 m 條道路,每條道路連線兩個城市,注意道路是雙向的。現在小信知道了他經過每條道路需要花費的時間,他想請你幫他計算一下,他這次比賽最少需要花多少時間完成。輸入第一行輸入兩...

vjudge比賽題解

題目位址 這道題本身不難,難在題目要求的格式上,所以新手多數會卡著格式不過關而不能ac。空白行就是在endl後還要endl一次,而且要在最後一次輸出中不輸出空白行就行了。至於大數加法可以參考這份部落格 大數專題 include include include include using namesp...

比賽題解 NOIP2021 題解

可以先把十進位制表示下數字含有 7 的所有數都求出來,然後去列舉這些數的倍數,將其標記。如果當前列舉到的數被標記過了則就不需要再列舉倍數了 因為列舉的倍數肯定也被標記過了 時間複雜度 mathcal n log log n include include include using namespac...