日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

CCF CSP 201609-2 火车购票

發(fā)布時間:2023/11/27 生活经验 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 CCF CSP 201609-2 火车购票 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

題目鏈接:http://118.190.20.162/view.page?gpid=T46

問題描述 請實(shí)現(xiàn)一個鐵路購票系統(tǒng)的簡單座位分配算法,來處理一節(jié)車廂的座位分配。
  假設(shè)一節(jié)車廂有20排、每一排5個座位。為方便起見,我們用1到100來給所有的座位編號,第一排是1到5號,第二排是6到10號,依次類推,第20排是96到100號。
  購票時,一個人可能購一張或多張票,最多不超過5張。如果這幾張票可以安排在同一排編號相鄰的座位,則應(yīng)該安排在編號最小的相鄰座位。否則應(yīng)該安排在編號最小的幾個空座位中(不考慮是否相鄰)。
  假設(shè)初始時車票全部未被購買,現(xiàn)在給了一些購票指令,請你處理這些指令。 輸入格式 輸入的第一行包含一個整數(shù)n,表示購票指令的數(shù)量。
  第二行包含n個整數(shù),每個整數(shù)p在1到5之間,表示要購入的票數(shù),相鄰的兩個數(shù)之間使用一個空格分隔。 輸出格式 輸出n行,每行對應(yīng)一條指令的處理結(jié)果。
  對于購票指令p,輸出p張車票的編號,按從小到大排序。 樣例輸入 4
2 5 4 2 樣例輸出 1 2
6 7 8 9 10
11 12 13 14
3 4 樣例說明 1) 購2張票,得到座位1、2。
  2) 購5張票,得到座位6至10。
  3) 購4張票,得到座位11至14。
  4) 購2張票,得到座位3、4。 評測用例規(guī)模與約定 對于所有評測用例,1 ≤ n ≤ 100,所有購票數(shù)量之和不超過100。

大致思路的話:就是按照題目模擬就完了,開了兩個數(shù)組一個記錄車票編號,一個記錄座位是否還有票,然后先一排一排地判斷是否有連續(xù)的票,如果有就選擇這一排連續(xù)的座位,另外,如果都不滿足的話,那就只能從第一排開始有票就買了(題目要求從小到大排序地買)。其實(shí)吧,我覺得我沒想到我的能過,感覺題目數(shù)據(jù)有缺陷,我只判斷了一排中余票是否大于p,但是并沒有判斷一排大于p的座位是否是連續(xù),假如p=3,我這一排的余票的號碼是【1 2 4 5】即這排總的余票是4>p=3,這其實(shí)并不能滿足題意的連續(xù),但是我的程序判斷可以,所以感覺數(shù)據(jù)還是蠻水的。。。

 1 //CCF CSP 201609-2 火車購票
 2 #include <iostream>
 3 #include <algorithm>
 4 #include <cstring>
 5 #include <string>
 6 #include <stack>
 7 #include <queue>
 8 using namespace std;
 9 int a[105];
10 int b[105];
11 int n,x,sum;
12 int main()
13 {
14     while(cin>>n){
15         for(int i=1;i<105;i++) a[i]=1;
16         int t=1,flag;
17         queue<int> q;
18         while(n--){
19             cin>>x;
20             flag=0;
21             for(int i=1;i<=20;i++){
22                 sum=0;
23                 for(int j=1;j<=5;j++){
24                     sum+=a[5*(i-1)+j];
25                 }
26                 if(sum>=x){
27                     for(int j=1;j<=5;j++){
28                         if(a[5*(i-1)+j]==1&&x){
29                             b[5*(i-1)+j]=5*(i-1)+j;
30                             q.push(5*(i-1)+j);
31                             t++;
32                             x--;
33                             a[5*(i-1)+j]=0;
34                         }
35                     }
36                     while(!q.empty()){
37                         cout<<q.front();
38                         q.pop();
39                         if(!q.empty()) cout<<" ";
40                     }
41                     cout<<endl;
42                     flag=1;
43                     break;
44                 }
45             }
46             if(flag==0){
47                 for(int i=1;i<=20;i++){
48                     for(int j=1;j<=5;j++){
49                         if(a[5*(i-1)+j]==1&&x){
50                             b[5*(i-1)+j]=5*(i-1)+j;
51                             q.push(5*(i-1)+j);
52                             t++;
53                             x--;
54                             a[5*(i-1)+j]=0;
55                         }
56                     }
57                 }
58                 while(!q.empty()){
59                     cout<<q.front();
60                     q.pop();
61                     if(!q.empty()) cout<<" ";
62                 }
63                 cout<<endl;
64             }
65         }
66     }
67     return 0;
68 } 

?

轉(zhuǎn)載于:https://www.cnblogs.com/shixinzei/p/10776982.html

總結(jié)

以上是生活随笔為你收集整理的CCF CSP 201609-2 火车购票的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。