2034 四人投票

2022-05-22 02:42:10 字數 1070 閱讀 2029

time limit: 20 second

memory limit: 20 mb

問題描述:

競選時,要求選民在a,b,c,d四個候選人中選擇(人數不限),如果選擇了這四個人以外的人員,視為廢票。統計時輸入「*」結束,請按候選人得票數從大到小順序輸出候選人和其票數。0票也輸出。

輸入在同一行

輸入字串以"*"結束

輸出統計的候選人姓名及其票數,統計結果按候選人得票數從大到小順序輸出。(若票數相同先出現字母的先輸出)

輸入:aadadadbdbbcd*
輸出:d:5

a:4b:3

c:1 回車

【題解】

以字串輸入資料,遇到什麼字母相應的a[1..4]++就好。但輸出的時候票數相同先出現的先輸出,沒有想到更好的解決辦法,就用乙個bo陣列記錄每個字元出現的先後順序,如果遇到有相同票數的,按照bo陣列再重新進行一次排序就好,只要處理相同數字的區間即可。

【**】

#include #include #include const int maxl = 4;

using namespace std;

int a[maxl+1],number = 0;

char b[maxl+1];

int bo[maxl+1];

string s1;

void input_data()

void get_ans()

if (s1[i] == 'b')

if (s1[i] == 'c')

if (s1[i] == 'd')

i++;

} bool flag = false;

while (!flag) //先對票數進行排序 連同代表的字母和出現的先後順序都要排序

}}void deal_ans(int l,int r)

}}void output_ans()

for (int i = 1;i <= 4;i++)

cout << b[i] << ':' << a[i] << endl;

}int main()

四人過橋問題

問題描述 有a b c d四個人,要在夜裡過一座橋。他們通過這座橋分別需要耗時1 2 5 10分鐘,只有一支手電,並且同時最多只能兩個人一起過橋。請問,如何安排,能夠在17分鐘內這四個人都過橋?思路 由於橋最多只能允許兩個人一起過橋,一定是過橋時間最長的兩個人一起過橋,這樣時間是最短的,同時,由於只...

回溯 四人分酒問題

題目 兩瓶 8兩的酒,乙個 3兩的杯子,瓶和杯子都沒有刻度,如何將酒平均分給四個人喝?也就是每個人分 4兩酒,也沒什麼限制條件,當然,喝過的酒不能再吐出來 思路 回溯演算法,遞迴 對當前酒瓶,杯和人當前存的酒量設定為一種狀態,最初始的狀態為 880 0000 最終的狀態為 000 4444 狀態的改...

php試題 四人過橋問題

那是乙個漆黑寂靜的夜 一家四口穿過了詛咒叢林來到了通往人類世界的無妄之橋 橋頭僅有的一盞長明燈 映照著對過橋者的警示 無妄之橋,每次最多隻可通行兩人,橋上詛咒密布,必須在此長明燈庇佑下方可通過,如果38分鐘內未能全員通過 後果自負。四人過橋,同一時間只能過兩人,並且必須有一人提燈,如何在38分鐘內四...