CF475A Bayan Bus 题解
Update
- \(\texttt{2020.10.6}\) 修改了一些笔误。
Content
模拟一个核载 \(34\) 人的巴士上有 \(k\) 个人时的巴士的状态。
每个人都会优先选择有空位的最后一排最左侧一个空位入座。
数据范围:\(0\leqslant k\leqslant 34\)。
Solution
有 \(6\) 行,所以按 \(6\) 行来分类讨论。
Part 1 第一行
第一行只需要输出一串字符串就行了,不需要多讲。
由于第六行输出的东西和第一行一模一样,故之后不做详细讲解。
Part 2 第二行
第二行开始一直到第五行都需要考虑到车上的人的情况。我们先来看这一行。
首先得要考虑最后一排的情况(因为最后一排有 \(4\) 个人)。
- 如果 \(k=0\),那么最后一排上的这一列不坐人。
- 否则,这里肯定会坐人。
然后,还有坐在这一列的人数 \(p_2=\left\lceil\dfrac{\max\{0,k-4\}}{3}\right\rceil\),没坐在这一列的人数则是 \(10-p_2\)。这个可以自己去推算。
Part 3 第三行
首先还是考虑最后一排的情况。
- 如果 \(k<2\),那么这里不坐人。
- 否则,这里肯定坐人。
然后,还有坐在这一列的人数 \(p_3=\left\lceil\dfrac{\max\{0,k-5\}}{3}\right\rceil\),没坐在这一列的人数则是 \(10-p_3\)。
由于第五行与第二、三行的情况类似,故之后不做详细讲解。
Part 4 第四行
首先还是考虑最后一排的情况。
- 如果 \(k<3\),那么这里不坐人。
- 否则,这里肯定坐人。
然后这里就是过道了,直接输出 .
(经检验总共有 \(22\) 个)。
其他的不做多讲。
注意,除了我讲的东西要输出外,每一行后面可能还会有一些多余的东西,它们也要输出。
Code
#include <cstdio>
#include <cmath>
#include <algorithm>
using namespace std;
int main() {
int k;
scanf("%d", &k);
printf("+------------------------+\n|");
if(!k) printf("#.");
else printf("O.");
for(int i = 1; i <= (int)ceil(max(0, k - 4) / 3.0); ++i) printf("O.");
for(int i = 1; i <= 10 - (int)ceil(max(0, k - 4) / 3.0); ++i) printf("#.");
printf("|D|)\n|");
if(k < 2) printf("#.");
else printf("O.");
for(int i = 1; i <= (int)ceil(max(0, k - 5) / 3.0); ++i) printf("O.");
for(int i = 1; i <= 10 - (int)ceil(max(0, k - 5) / 3.0); ++i) printf("#.");
printf("|.|\n|");
if(k < 3) printf("#.");
else printf("O.");
for(int i = 1; i <= 22; ++i) printf(".");
printf("|\n|");
if(k < 4) printf("#.");
else printf("O.");
for(int i = 1; i <= (int)ceil(max(0, k - 6) / 3.0); ++i) printf("O.");
for(int i = 1; i <= 10 - (int)ceil(max(0, k - 6) / 3.0); ++i) printf("#.");
printf("|.|)\n+------------------------+");
}
CF475A Bayan Bus 题解的更多相关文章
- cf475A Bayan Bus
A. Bayan Bus time limit per test 2 seconds memory limit per test 256 megabytes input standard input ...
- Bzoj 1537: [POI2005]Aut- The Bus 题解 [由暴力到正解]
1537: [POI2005]Aut- The Bus Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 387 Solved: 264[Submit][S ...
- codeforces A. Bayan Bus(简单模拟)
#include <queue> #include <string> #include <cstdio> #include <cstring> #inc ...
- codeforces 475A.Bayan Bus 解题报告
题目链接:http://codeforces.com/problemset/problem/475/A 题目意思:输入一个整数 k(0 ≤ k ≤ 34),表示participants的人数,需要在一 ...
- codeforces CF475 ABC 题解
Bayan 2015 Contest Warm Up http://codeforces.com/contest/475 A - Bayan Bus B - Strongly Connected Ci ...
- 洛谷 题解 CF711A 【Bus to Udayland】
先用一个字符数组存每行的座位情况(字符变量也可以) 接下来用另一个数组存最后的座位情况 好了,看代码 #include<iostream> using namespace std; boo ...
- CF792A New Bus Route 题解
Content 给定一个长度为 \(n\) 的数列 \(a_1,a_2,a_3,...,a_n\),求这个序列当中差的绝对值最小的数对并求出这样的数对的个数. 数据范围:\(2\leqslant n\ ...
- [BZOJ 2004] [Hnoi2010] Bus 公交线路 【状压DP + 矩阵乘法】
题目链接: BZOJ - 2004 题目分析 看到题目完全不会..于是立即看神犇们的题解. 由于 p<=10 ,所以想到是使用状压.将每个连续的 p 个位置压缩成一个 p 位 2 进制数,其中共 ...
- BZOJ1537: [POI2005]Aut- The Bus
1537: [POI2005]Aut- The Bus Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 158 Solved: 100[Submit][S ...
随机推荐
- 七、Hadoop3.3.1 HA 高可用集群QJM (基于Zookeeper,NameNode高可用+Yarn高可用)
目录 前文 Hadoop3.3.1 HA 高可用集群的搭建 QJM 的 NameNode HA Hadoop HA模式搭建(高可用) 1.集群规划 2.Zookeeper集群搭建: 3.修改Hadoo ...
- 1、使用ValueOperations操作redis(String字符串)
文章来源:https://www.cnblogs.com/shiguotao-com/p/10559997.html 方法 c参数 s说明 void set(K key, V value); ke ...
- Treevalue(0x03)——函数树化详细解析(下篇)
好久不见,再一次回到 treevalue 系列.本文将基于上一篇treevalue讲解,继续对函数的树化机制进行详细解析,并且会更多的讲述其衍生特性及应用. 树化方法与类方法 首先,基于之前的树化函数 ...
- Codeforces 848C Goodbye Souvenir(CDQ 分治)
题面传送门 考虑记录每个点的前驱 \(pre_x\),显然答案为 \(\sum\limits_{i=l}^{r} i-pre_i (pre_i \geq l)\) 我们建立一个平面直角坐标系,\(x\ ...
- Spring-boot -Web开发
1).创建SpringBoot应用,选中我们需要的模块: 2).SpringBoot已经默认将这些场景配置好了,只需要在配置文件中指定少量配置就可以运行起来 3).自己编写业务代码: 文件名的功能 x ...
- Anaconda3-更换为清华源后依旧报错CondaHTTPError: HTTP 000 CONNECTION FAILED
前言 今天发现换完清华源以后依旧报错 CondaHTTPError: HTTP 000 CONNECTION FAILED for url <https://mirrors.tuna.tsi.. ...
- C语言 自定义函数按行读入文件
在之前的博客中 https://www.cnblogs.com/mmtinfo/p/13036039.html 读取一行的getline()函数是GNU 的扩展函数. 这里用自定义函数实现这个功能,从 ...
- C/C++ Qt StatusBar 底部状态栏应用
Qt窗体中默认会附加一个QstatusBar组件,状态栏组件位于主窗体的最下方,其作用是提供一个工具提示功能,当程序中有提示信息是可以动态的显示在这个区域内,状态栏组件内可以增加任何Qt中的通用组件, ...
- 重新整理 .net core 实践篇——— endpoint[四十七]
前言 简单整理一些endpoint的一些东西,主要是介绍一个这个endpoint是什么. 正文 endpoint 从表面意思是端点的意思,也就是说比如客户端的某一个action 是一个点,那么服务端的 ...
- Kubernetes-存储(一)
前言 本篇是Kubernetes第十二篇,大家一定要把环境搭建起来,看是解决不了问题的,必须实战. Kubernetes系列文章: Kubernetes介绍 Kubernetes环境搭建 Kubern ...