【题解】「CF363A」Soroban
哎呀呀,咕值要掉光了,赶快水篇题解(
solution
这题就是个纯模拟,首先我们根据输出样例看一下输出算盘的规则。
看数最大的 720
,我们发现,输出的算盘张这样(之所以我不用代码框而用 \(\KaTeX\) 是因为代码框是对不了齐的):
O & - & | & - & O & O & O & O \\
O & - & | & O & O & - & O & O \\
- & O & | & O & O & - & O & O \\
\end{matrix}
\]
其中左面一个珠子代表 \(5\),下面一个珠子代表 \(1\),从 下往上 读。
先看最高位。
- & O & | & O & O & - & O & O \\
\end{matrix}
\]
看到代表 \(5\) 的珠子是往中间拨的,有两个代表 \(1\) 的珠子也是往中间拨的,所以最高位就等于 \(5 \times 1 + 1 \times 2 = 7\)
再看十位。
O & - & | & O & O & - & O & O \\
\end{matrix}
\]
代表 \(5\) 的珠子是没有往中间拨的,有两个代表 \(1\) 的珠子是往中间拨的,所以十位就等于 \(=5 \times 0 + 1 \times 2 = 2\)
最后看个位。
O & - & | & - & O & O & O & O \\
\end{matrix}
\]
代表 \(5\) 的珠子没有往中间拨的,代表 \(1\) 的珠子也没有是往中间拨的,所以个位就等于 \(=5 \times 0 + 1 \times 0 = 0\)
最后相结合
\text{百位} & \text{十位} & \text{个位}\\
7 & 2 & 0\\
\end{matrix}=720
\]
那我们就可以打一个表,将 \(1 \sim 10\) 算盘对应的状态打成表,最后字符串输入一位一位看即可。
Code
/*
Problem:CF363A
*/
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<cmath>
#include<string>
#define line cout << endl
using namespace std;
char n[15];
string abacus[15] =
{
"O-|-OOOO",//0
"O-|O-OOO",//1
"O-|OO-OO",//2
"O-|OOO-O",//3
"O-|OOOO-",//4
"-O|-OOOO",//5
"-O|O-OOO",//6
"-O|OO-OO",//7
"-O|OOO-O",//8
"-O|OOOO-"//9
};
int main () {
cin >> n;
int len = strlen (n);
for (int i = len - 1; i >= 0; i--) { //注意!输出是从低位到高位!
cout << abacus[n[i] - '0'] << endl;
}
return 0;
}
谢谢。
【题解】「CF363A」Soroban的更多相关文章
- 题解 「HDU6403」卡片游戏
link Description 桌面上摊开着一些卡牌,这是她平时很爱玩的一个游戏.如今卡牌还在,她却不在我身边.不知不觉,我翻开了卡牌,回忆起了当时一起玩卡牌的那段时间. 每张卡牌的正面与反面都各有 ...
- 题解 「SCOI2016」萌萌哒
link Description 一个长度为 $ n $ 的大数,用 $ S_1S_2S_3 \ldots S_n $表示,其中 $ S_i $ 表示数的第 $ i $ 位,$ S_1 $ 是数的最高 ...
- 题解 「SDOI2017」硬币游戏
题目传送门 Description 周末同学们非常无聊,有人提议,咱们扔硬币玩吧,谁扔的硬币正面次数多谁胜利. 大家纷纷觉得这个游戏非常符合同学们的特色,但只是扔硬币实在是太单调了. 同学们觉得要加强 ...
- 题解 「ZJOI2018」历史
题目传送门 Description 九条可怜是一个热爱阅读的女孩子. 这段时间,她看了一本非常有趣的小说,这本小说的架空世界引起了她的兴趣. 这个世界有 \(n\) 个城市,这 \(n\) 个城市被恰 ...
- 题解 「BZOJ3636」教义问答手册
题目传送门 Description 作为泉岭精神的缔造者.信奉者.捍卫者.传承者,Pear决定印制一些教义问答手册,以满足泉岭精神日益增多的信徒.Pear收集了一些有关的诗选.语录,其中部分内容摘录在 ...
- 题解「BZOJ4310」跳蚤
题目传送门 Description 现在有一个长度为 \(n\) 的字符串,将其划分为 \(k\) 段,使得这 \(k\) 段每一段的字典序最大子串中字典序最大的字符串字典序尽量小.求出这个字符串. ...
- 题解 「BZOJ2137」submultiple
题目传送门 题目大意 给出 \(M,k\) ,求出 \[\sum_{x|M}\sigma(x)^k \] 给出 \(P_i\),满足 \(n=\prod_{i=1}^{n}a_i^{P_i}\),其中 ...
- 题解 「BZOJ2178」圆的面积并
题目传送门 题目大意 给出 \(n\) 个圆,求它们并的面积大小. \(n\le 10^3\) 思路 如果您不会自适应辛普森法,请戳这里学习 其实我们发现,如果我们设 \(f(x)\) 表示 \(x= ...
- 题解 - 「MLOI」小兔叽
小兔叽 \(\texttt{Link}\) 简单题意 有 \(n\) 个小木桩排成一行,第 \(i\) 个小木桩的高度为 \(h_i\),分数为 \(c_i\). 如果一只小兔叽在第 \(i\) 个小 ...
随机推荐
- 【JVM】肝了一周,吐血整理出这份超硬核的JVM笔记(升级版)!!
写在前面 最近,一直有小伙伴让我整理下关于JVM的知识,经过十几天的收集与整理,初版算是整理出来了.希望对大家有所帮助. JDK 是什么? JDK 是用于支持 Java 程序开发的最小环境. Java ...
- uboot——do_bootm
do_bootm |----------根据参数得到 image的起始地址 |----------比较header的 magic_num 是否为 zImage | |是 | | zImage路线 | ...
- thinkphp5.1与layui table表格使用
第1部分:layui 的 html代码, 即第2部分 thinkphp 控制器方法 index/Dataz/returnShowUser 的view页面 <!DOCTYPE html> & ...
- Cephfs的快照功能
前言 Cephfs的快照功能在官网都很少提及,因为即使开发了很多年,但是由于cephfs的复杂性,功能一直没能达到稳定,这里,只是介绍一下这个功能,怎么使用,并且建议不要在生产中使用,因为搞不好是会丢 ...
- 西数WD2T硬盘分区对齐的方法
新购一个西数2T硬盘,也就是绿盘的那种,淘宝500左右,支持高级格式化. 到手以后,分区格式化,前几天格式化完成以后,fdisk -l 发现如下文字 引用 Partition 1 does not s ...
- 4.Spring Boot web开发
1.创建一个web模块 (1).创建SpringBoot应用,选中我们需要的模块: (2).SpringBoot已经默认将这些场景配置好了,只需要在配置文件中指定少量配置就可以运行起来 (3).自己编 ...
- list scheduling algorithm 指令调度 —— 笔记
作者:Yaong 出处:https://www.cnblogs.com/yaongtime/articles/14033444.html 版权:本文版权归作者和博客园共有 转载:欢迎转载,但未经作者同 ...
- yii2 删除数据
直接 model 删除 $model = User::find($id); $model->delete(); 带有条件的删除 $connection ->createCommand() ...
- 三. Vue组件化
1. 认识组件化 1.1 什么是组件化 人面对复杂问题的处理方式 任何一个人处理信息的逻辑能力都是有限的,所以当面对一个非常复杂的问题时我们不太可能一次性搞定一大堆的内容. 但是我们人有一种天生的能力 ...
- 【mq读书笔记】消息队列负载与重新分配(分配 新队列pullRequest入队)
回顾PullMessageService#run: 如果队列总没有PullRequest对象,线程将阻塞. 围绕PullRequest有2个问题: 1.PullRequest对象在什么时候创建并加入p ...