1. 程式人生 > >馬上就要被樓下超過了思維題專場(二)的題目思路

馬上就要被樓下超過了思維題專場(二)的題目思路

1.比賽連結

2.題解

A.1 10 100 1000

題目連結

題意

給一個數列1101001000...求第N位是1還是0

思路

只有滿足m*(m-1)/2+1的N才是1,否則就是0,m為非負整數,可以通過逆運算判一下

B.三子棋

題目連結

題意

玩一個3*4的3連bingo,給出第一步下的位置,問需要幾步能贏

思路

找室友玩了一會發現下在角落6步贏,長度3的邊的中間只能平局,剩下的4步贏

C.罐子和硬幣

題目連結

題意

給你n個罐子k個硬幣,你可以任意分配罐子中的硬幣,然後你無法區分罐子,從罐子中取硬幣每次一個,問取出C個硬幣需要多少次?

思路

最開始的想法是將硬幣平均分,如果取得硬幣比較少或者剛好整除都能夠C次取出,否則就要多花n-k%n次但是寫上去交了一發WA了

後來試了一下9 28 28的樣例發現不是在任何情況下都是最優解的,把28個硬幣平均分配在7個罐子中然後再嘗試兩次空罐子明顯更省 

仔細思考了一下發現果然有些問題,如果儘量均分的放法,某些罐子放a個,某些放a+1個,當a個的數目很多而且a+1個的數目很少的時候就會出問題,這個時候讓每個罐子都放a+1個,剩下的全空出來,這樣能夠保證最少的查詢空罐子的消耗,把這個結果和之前的那個結果比較一下大小就有結果了。

D.排列轉換

題目連結

題意

兩個長度為n的排列p和s。要求通過交換使得p變成s。代價是交換的距離,求代價

思路

分別計算每一個位數和目標的距離求和,由於是交換,每次會改變兩個點,把求出來的和除以二就可以了

E.數數字

題目連結

題意

統計一下 aaa ⋯ aaa*b的結果裡面有多少個數字d,a,b,d均為一位數

思路

特殊考慮最高位和最低位,剩下的每一位都應該是相同的數字,模擬乘法算一下就出來了。。是a*b%10+a*b/10

F.排船的問題

題目連結

題意

太麻煩了,,,直接看題面吧。。。

思路

不太會。。看了一下題解是二分?只看懂個大概

G.丟手絹

題目連結

題意

約瑟夫環,具體規則看原題吧

思路

輸入一共只有13種。。。好像可以本地打個表?直接模擬就可以吧 和約瑟夫環最終判定還不太一樣 不是很好算。。。

H.數袋鼠好有趣

題目連結

題意

有一堆袋鼠,袋鼠能被裝到大小是他二倍以上的袋鼠裡面,袋鼠只能裝一次,問最後最少看到多少個袋鼠

思路

因為袋鼠被裝之後不能再裝別人,所以貪心,直接從最小的袋鼠開始找第一個能裝下他的袋鼠就可以了

I.Save the problem!

題目連結

題意

給你一個方案總數n,求價格,以及多少種面值的硬幣,每種面值是多少,剛好有n種方案可以湊成這個價格。

思路

這題應該是要special judge的 所以就只用1塊和2塊的硬幣來湊就可以了,推算一下找一下規律就可以發現用1和2湊2n-1是正好n種方案的,輸出就可以了。。。MMP想了好久