[程式設計題] 糖果謎題
時間限制:1秒
空間限制:32768k
小明是幼兒園的一名老師。某天幼兒園園長給小朋友們每人發一顆糖果,小朋友們拿到後發現有一些同學拿到的糖果顏色和自己相同,有一些同學糖果顏色和自己不同。
假定每個小朋友只知道有多少同學和自己拿到了相同顏色的糖果。
上課後,有一部分小朋友興奮的把這一結果告訴小明老師,並讓小明老師猜一猜,最少有多少同學拿到了糖果。
例如有三個小朋友告訴小明老師這一結果如下:
其中第乙個小朋友發現有1人和自己糖果顏色一樣,第二個小朋友也發現有1人和自己糖果顏色一樣,第三個小朋友發現有3人和自己糖果顏色一樣。
第一二個小朋友可互相認為對方和自己顏色相同,比如紅色;
第三個小朋友不可能再為紅色(否則第一二個小朋友會發現有2人和自己糖果顏色相同),假設他拿到的為藍色糖果,那麼至少還有另外3位同學拿到藍色的糖果,最終至少有6位小朋友拿到了糖果。
現在請你幫助小明老師解答下這個謎題。
輸入描述:
假定部分小朋友的回答用空格間隔,如 1 1 3
輸出描述:
直接列印最少有多少位小朋友拿到糖果
如 6
輸入例子1:
1 1 3
輸出例子1:
6
輸入例子2:
0 0 0
輸出例子2:
3
例子說明2:
三位小朋友都沒發現有人和自己的顏色相同,所以最少的情況就是三位小朋友糖果的顏色均不同
/*
分析:通過map來記錄相同顏色的數量,並通過數量num與val+1進行比較來計算。注意當num不足到乙個
val+1時,只算上乙個val+1.
注意:只是部分同學告訴老師,所以例如2 2的時候也是算最少三個糖果
*/#include#include#include#includeusing namespace std;
int main()
for(auto it:mymap)
}cout
}
各種面試題 分配糖果
有n個小朋友站成一排 編號從0到n 1 每個小朋友有乙個rating值,存放在ratings陣列中。老師需要給他們分配糖果,每個小朋友至少需要一顆糖果,對於任意相鄰的兩個小朋友i和i 1,rating值大的必須比rating值小的分配的糖果多 rating相同的沒必要分配一樣多的糖果 請計算最少需要...
網易面試題 趕去公司
終於到週末啦!小易走在市區的街道上準備找朋友聚會,突然伺服器發來警報,小易需要立即回公司修復這個緊急bug。假設市區是乙個無限大的區域,每條街道假設座標是 x,y 小易當前在 0,0 街道,辦公室在 gx,gy 街道上。小易周圍有多個計程車打車點,小易趕去辦公室有兩種選擇,一種就是走路去公司,另外一...
網易面試題 調整隊形
在幼兒園有n個小朋友排列為乙個隊伍,從左到右乙個挨著乙個編號為 0 n 1 其中有一些是男生,有一些是女生,男生用 b 表示,女生用 g 表示。小朋友們都很頑皮,當乙個男生挨著的是女生的時候就會發生矛盾。作為幼兒園的老師,你需要讓男生挨著女生或者女生挨著男生的情況最少。你只能在原隊形上進行調整,每次...