问题描述
  请实现一个铁路购票系统的简单座位分配算法,来处理一节车厢的座位分配。
  假设一节车厢有20排、每一排5个座位。为方便起见,我们用1到100来给所有的座位编号,第一排是1到5号,第二排是6到10号,依次类推,第20排是96到100号。
  购票时,一个人可能购一张或多张票,最多不超过5张。如果这几张票可以安排在同一排编号相邻的座位,则应该安排在编号最小的相邻座位。否则应该安排在编号最小的几个空座位中(不考虑是否相邻)。
  假设初始时车票全部未被购买,现在给了一些购票指令,请你处理这些指令。
输入格式
  输入的第一行包含一个整数n,表示购票指令的数量。
  第二行包含n个整数,每个整数p在1到5之间,表示要购入的票数,相邻的两个数之间使用一个空格分隔。
输出格式
  输出n行,每行对应一条指令的处理结果。
  对于购票指令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。
评测用例规模与约定
  对于所有评测用例,1 ≤ n ≤ 100,所有购票数量之和不超过100。

今天做这个题的时候想到一个取巧的办法,在时间不够的情况下,只考虑其中一种或几种较为简单的情况,基本能得到大部分的分数。

//只考虑安排相邻的地方,得分90
#include<bits/stdc++.h>
using namespace std;int main() {int n,a;int nmap[21][2];for(int i=1;i<=20;i++) {nmap[i][0] = 5;}cin >> n;for(int i=1;i<=n;i++) {cin >> a;for(int j=1;j<21;j++) {if(nmap[j][0] >= a) {for(int k=1;k<=a;k++) {cout << (5*(j-1)+k+(5-nmap[j][0])) << " ";}cout << endl;nmap[j][0] -= a;break; }} }return 0;
}
//完整代码,得分100
#include<bits/stdc++.h>
using namespace std;int main() {int n,a;int nmap[21][2];for(int i=1;i<=20;i++) {nmap[i][0] = 5;}cin >> n;for(int i=1;i<=n;i++) {cin >> a;int j;for(j=1;j<21;j++) {if(nmap[j][0] >= a) {for(int k=1;k<=a;k++) {cout << (5*(j-1)+k+(5-nmap[j][0])) << " ";}cout << endl;nmap[j][0] -= a;break; }} //安排不相邻的座位 if(j==21) {for(int i=1;i<21;i++) {if(nmap[i][0] > 0) {int count = nmap[i][0] > a ? a : nmap[i][0];for(int k=1; k<=count; k++) {cout << (5*(i-1)+k+(5-nmap[i][0])) << " ";}a -= count;if(a == 0) {break;}}} }}return 0;
}

CCF 201609-2 火车购票相关推荐

  1. CCF CSP 201609-2 火车购票

    题目链接:http://118.190.20.162/view.page?gpid=T46 问题描述 请实现一个铁路购票系统的简单座位分配算法,来处理一节车厢的座位分配. 假设一节车厢有20排.每一排 ...

  2. CCF CSP 201609-2 火车购票(C++语言100分)[简单模拟题]

    1. 问题链接:CCF 201609-2 火车购票 试题编号: 201609-2 试题名称: 火车购票 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 请实现一个铁路购票系统的 ...

  3. CCF CSP 201609-2 火车购票(90分,怎么也检查不出来问题在哪儿,导致不能满分??)

    问题描述 试题编号: 201609-2 试题名称: 火车购票 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 请实现一个铁路购票系统的简单座位分配算法,来处理一节车厢的座位分配 ...

  4. 【CCF】201609-2火车购票

    原文详见:https://blog.csdn.net/tigerisland45/article/details/54798869 试题编号: 201609-2 试题名称: 火车购票 时间限制: 1. ...

  5. CCF CSP 201609-2 火车购票 C++实现 100分

    问题描述 请实现一个铁路购票系统的简单座位分配算法,来处理一节车厢的座位分配. 假设一节车厢有20排.每一排5个座位.为方便起见,我们用1到100来给所有的座位编号,第一排是1到5号,第二排是6到10 ...

  6. CCF:201609-2 火车购票

    问题描述 试题编号: 201609-2 试题名称: 火车购票 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 请实现一个铁路购票系统的简单座位分配算法,来处理一节车厢的座位分配. 假设一 ...

  7. CCF201609-2 火车购票

    问题描述: 试题编号: 201609-2 试题名称: 火车购票 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 请实现一个铁路购票系统的简单座位分配算法,来处理一节车厢的座位分 ...

  8. # CSP 201609-2 火车购票购买(100分)

    试题编号: 201612-2 试题名称: 火车购票 时间限制: 1.0s 内存限制: 256.0MB 问题描述 请实现一个铁路购票系统的简单座位分配算法,来处理一节车厢的座位分配. 假设一节车厢有20 ...

  9. ## CSP 201609-2 火车购票购买,C语言版(90分版)

    试题编号: 201612-2 试题名称: 火车购票 时间限制: 1.0s 内存限制: 256.0MB 问题描述 请实现一个铁路购票系统的简单座位分配算法,来处理一节车厢的座位分配. 假设一节车厢有20 ...

  10. CCF201609-2 火车购票(100分)

    试题编号: 201609-2 试题名称: 火车购票 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 请实现一个铁路购票系统的简单座位分配算法,来处理一节车厢的座位分配. 假设一 ...

最新文章

  1. ebnf描述c语言语句结构,EBNF与操作语义 请用扩展的 BNF 描述 javascript语言里语句的结构;并用操作语义的方法描述对应的语义规则...
  2. 20140725 快速排序时间复杂度 sTL入门
  3. 【Android】自定义listview快速滚动条
  4. python 链表的中间节点
  5. 布丁消除html,布丁压缩怎么彻底卸载
  6. springsecurity中session失效后怎样处理_结合Spring Security进行web应用会话安全管理
  7. 到需要了解AD和LDAP的关系的时候了
  8. 实现IMSI、IMEI查询
  9. EOSIO 指南(浏览源码)
  10. 四张照片合成一张怎么弄_教你5种照片创意手工,简单好看实用
  11. 鼎捷T100权限管控设定
  12. 基于SSM的图书借阅管理系统的分析与设计(源码+文档+PPT)
  13. 怎样检测php语法错误,php语法检查的方法总结
  14. vue使用datav+echarts
  15. 要装系统就装WINDOWSXPSP3VL正式版操作系统
  16. MatlabR2012a 显示使用过期的注册文件破解(.lic)
  17. gluster部署和使用
  18. 蚂蚁金服宫孙:guava探究系列之优雅校验数据
  19. redis的hash与string区别
  20. 30个疯狂的网页设计作品欣赏

热门文章

  1. vins-mono后端优化
  2. 【AI视野·今日NLP 自然语言处理论文速览 第二十六期】Wed, 3 Nov 2021
  3. Kubernetes-Pod/ReplicaSet/Deployment/Service关系(二十一)
  4. 装箱与拆箱 c# 1613534570
  5. 演练 使用变量存储商品的数据 0126
  6. 爬虫-演练-GET请求抓取网页的内容
  7. django-自定义过滤器
  8. django-记住用户名-利用cookie-待演练
  9. 算法--库函数实现全排列
  10. django生产环境部署