在csdn上看到這麼個題目,與友友們一起分享下,如果有別的做法,也希望能拿出來交流交流。
題目詳情
有n個小朋友站成一排(編號從0到n-1),每個小朋友有乙個rating值,存放在ratings陣列中。老師需要給他們分
配糖果,每個小朋友至少需要一顆糖果,對於任意相鄰的兩個小朋友i和i+1,rating值大的必須比rating值小的分
配的糖果多(rating相同的沒必要分配一樣多的糖果)。
請計算最少需要多少顆糖果,才能完成上述分配。
輸入格式:
多組資料,每組資料第一行是乙個正整數n。
接下來n行,每行有1個正整數,表示每個小朋友的rating值。所有整數都不超過100000。
輸出格式:
每組資料一行,包括乙個正整數,表示做少需要的糖果數。
在下的解決方案:
usingsystem;
using
system.collections.generic;
using
system.linq;
using
system.text;
using
system.threading.tasks;
namespace
分配糖果
static
int converttoint(string
str)
return
number;
}catch
return -1
; }
static
void
run()
個小朋友的rating:
", i + 1
)); ratings[i] =converttoint(console.readline());
}if (n < 0
)
else
if (n == 0
) 個糖果1
", 0
)); }
else
if (n == 1
) 個糖果2
", 1
)); }
else
else
if (ratings[j] ==dic.values.first())
else
if (ratings[j] }
}if (dic.count() > 0
)
else
if (d.key == n - 1
)
else
}else
else
}else
else}}
}}
else
}console.writeline();
console.writeline(
string.format("
需要個糖果3
", candys.sum()));
}message();
}static
void
message()
else}}
}
歡樂暑假線上程式設計比賽第三題 輪換數
題目詳情 把n各事物的集合劃分成k個非空子集的方式數,比如劃分2個非空子集,我們可以得到7種劃分方式 u u u u u u u.相信大家一看就知道這 個怎麼做吧,因為這就是著名的striling數.但是今天的問題卻是,計算n個元素安排城k個輪換 而不是子集 的 方式數.輪換是迴圈排列,也就是 a,...
歡樂暑假線上程式設計比賽第一題 拆點遊戲
題目 n個節點,m條邊的無向圖,每個節點乙個權值w。定義拆除乙個節點的代價為與其相鄰的節點的權值之和。拆除乙個節點後刪除所有與該節點相連的邊。求拆除所有節點需要花費的最少代價。輸入描述 輸入包含多組測試資料,每組測試資料第一行先輸入n,m 1 n 10000 0 m 20000 第二行輸入n個整數w...
歡樂暑假線上程式設計比賽第一題 拆點遊戲
題目詳情 n個節點,m條邊的無向圖,每個節點乙個權值w。定義拆除乙個節點的代價為與其相鄰的節點的權值之和。拆除乙個節點後刪除所有與該節點相連的邊。求拆除所有節點需要花費的最少代價。輸入描述 輸入包含多組測試資料,每組測試資料第一行先輸入n,m 1 n 10000 0 m 20000 第二行輸入n個整...