解題思路:
用乙個二維的vector儲存座位的狀態,vector的第一維長度固定,表示20排,第二維的長度不固定,這一排有幾個座位被占用了就有幾個元素,如果當前排剩下的位置大於等於p就從小到大占用這一排的p個座位,輸出這幾個座位對應的序號,如果所有排剩餘的座位都小於p,就從較小的排開始分若干排的座位給p個人佔座。
#include
using
namespace std;
vector
int>
>mp(
21);//這裡初始化mp的第一維的長度為21,我們不用mp[0]所以初始化為21
void
func
(int p)
else
mp[i]
.push_back(1
);//往這一排加入元素1,其實加入數字幾都可以,只是為了佔位置
}return;}
}//如果沒有哪一行剩餘的座位大於等於p
for(
int i=
1;i<=
20;i++)}
return;}
intmain
(void
)return0;
}
201609 2 火車購票
試題編號 201609 2 試題名稱 火車購票 時間限制 1.0s 記憶體限制 256.0mb 問題描述 問題描述 請實現乙個鐵路購票系統的簡單座位分配演算法,來處理一節車廂的座位分配。假設一節車廂有20排 每一排5個座位。為方便起見,我們用1到100來給所有的座位編號,第一排是1到5號,第二排是6...
201609 2 火車購票
問題描述 試題編號 201609 2 試題名稱 火車購票 時間限制 1.0s 記憶體限制 256.0mb 問題描述 問題描述 請實現乙個鐵路購票系統的簡單座位分配演算法,來處理一節車廂的座位分配。假設一節車廂有20排 每一排5個座位。為方便起見,我們用1到100來給所有的座位編號,第一排是1到5號,...
201609 2 火車購票
請實現乙個鐵路購票系統的簡單座位分配演算法,來處理一節車廂的座位分配。假設一節車廂有20排 每一排5個座位。為方便起見,我們用1到100來給所有的座位編號,第一排是1到5號,第二排是6到10號,依次類推,第20排是96到100號。購票時,乙個人可能購一張或多張票,最多不超過5張。如果這幾張票可以安排...