CF132A Turing Tape 题解
Content
读入一个字符串 \(s\),让你用以下规则将字符串中的所有字符转换成数字:
- 先将这个字符的 \(\texttt{ASCII}\) 码的 \(8\) 位 \(2\) 进制数反转,再将这个数转化为十进制数,记为 \(x\)。例如 \(\texttt{H}\) 的 \(\texttt{ASCII}\) 码是 \(72=(01001000)_2\),将其反转得 \((00010010)_2=18\)。
- 取出上一步的反转结果 \(res\)(第一步 \(res=0\)),求出最终的数字 \(a=(res-x)\mod256\)。例如,\(\texttt{H}\) 作为第一个字符出现在字符串中,那么它的最终转换的数字就是 \((0-18)\mod256=238\)。
数据范围:\(1\leqslant|s|\leqslant100\),各个字符的 \(\texttt{ASCII}\) 码在 \(32\) 到 \(126\) 之间(包含 \(32\) 和 \(126\))。
Solution
就是一道模拟题目。
首先得出字符的 \(\texttt{ASCII}\) 码以后我们把它转换为一个 \(8\) 位二进制的数,再反转。这个可以用一个数组来保存。
我们再调出上一次的结果(可以用一个变量保存,初始值为 \(0\)),然后求出来结果。注意,如果是负数,那么先要把它给加上 \(256\),使其变为正数,然后再取模。
Code
#include <cstdio>
#include <algorithm>
#include <cstring>
#include <cmath>
#include <iostream>
using namespace std;
string s;
int pre;
int main() {
getline(cin, s); //考虑到可能读入空格,用getline读入字符串
pre = 0;
for(int i = 0; i < s.size(); ++i) {
int x = (int)s[i], num[17] = {0}, newx = 0;
for(int j = 7; j >= 0; --j) if(x >= (int)pow(2, j)) num[j] = 1, x -= pow(2, j);
for(int j = 0; j <= 7; ++j) newx += num[j] * pow(2, 7 - j);
printf("%d\n", (pre - newx + 256) % 256);
pre = newx;
}
}
CF132A Turing Tape 题解的更多相关文章
- HDU3333 Turing Tree 树状数组+离线处理
Turing Tree Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total ...
- UVa 10878 Decode the tape
题目很简单,代码也很短.第一遍做的时候,我居然二乎乎的把input里面的小框框忽略掉了,所以WA了一次. 每一行代表一个二进制的ASCII码,'o'代表1,空格代表0,中间的小黑点忽略. 我直接把一行 ...
- hdu 3333 Turing Tree 图灵树(线段树 + 二分离散)
http://acm.hdu.edu.cn/showproblem.php?pid=3333 Turing Tree Time Limit: 6000/3000 MS (Java/Others) ...
- 第七届河南省赛F.Turing equation(模拟)
10399: F.Turing equation Time Limit: 1 Sec Memory Limit: 128 MB Submit: 151 Solved: 84 [Submit][St ...
- 算法(第四版)C# 习题题解——2.1
写在前面 整个项目都托管在了 Github 上:https://github.com/ikesnowy/Algorithms-4th-Edition-in-Csharp 这一节内容可能会用到的库文件有 ...
- HDU 3333 Turing Tree 线段树+离线处理
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=3333 Turing Tree Time Limit: 6000/3000 MS (Java/Othe ...
- 算法(第四版)C#题解——2.1
算法(第四版)C#题解——2.1 写在前面 整个项目都托管在了 Github 上:https://github.com/ikesnowy/Algorithms-4th-Edition-in-Csh ...
- Codeforces Global Round 1 (A-E题解)
Codeforces Global Round 1 题目链接:https://codeforces.com/contest/1110 A. Parity 题意: 给出{ak},b,k,判断a1*b^( ...
- Neural Turing Machines-NTM系列(一)简述
Neural Turing Machines-NTM系列(一)简述 NTM是一种使用Neural Network为基础来实现传统图灵机的理论计算模型.利用该模型.能够通过训练的方式让系统"学 ...
随机推荐
- [nowcoder5666B]Infinite Tree
首先考虑由$1!,2!,...,n!$所构成的虚树的一些性质: 1.每一个子树内所包含的阶乘的节点都是一个连续的区间(证明:对于子树k,如果存在$x!$和$y!$,即说明$x!$和$y!$的前$\de ...
- 测试平台系列(82) 解决APScheduler重复执行的问题
大家好~我是米洛! 我正在从0到1打造一个开源的接口测试平台, 也在编写一套与之对应的完整教程,希望大家多多支持. 欢迎关注我的公众号测试开发坑货,获取最新文章教程! 回顾 上一节我们编写了在线执行R ...
- restTemplate的问题-feign的项目
restTemplate的问题 1.场景描述 在使用feign的项目中,偶然的使用到了restTemplate 在普通方法调用是可以访问的,一旦使用了restTemplate,出现报错 比如: 百度 ...
- 如何基于 React 封装一个组件
如何基于 React 封装一个组件 前言 很多小伙伴在第一次尝试封装组件时会和我一样碰到许多问题,比如人家的组件会有 color 属性,我们在使用组件时传入组件文档中说明的属性值如 primary , ...
- Java 代码审计 — 1. ClassLoader
参考: https://www.bilibili.com/video/BV1go4y197cL/ https://www.baeldung.com/java-classloaders https:// ...
- 蓝绿部署、滚动部署、金丝雀(Canary)发布、灰度发布、A/B测试
最近看到Canary发布,一时没有反应过来是什么,一查才发现就是鼎鼎有名的金丝雀发布,发现经常一起出现的还有灰度发布.蓝绿部署.滚动部署.A/B测试,故一起学习一下这几个概念. 1. 蓝绿部署 目的: ...
- 基因组共线性分析工具MCScanX
软件简介 MCScanX工具集对MCScan算法进行了调整,用于检测共线性和同线性区域,还增加了可视化和下游分析..MCscanX有三个核心工具,以及12个下游分析工具. 软件安装 进入官网http: ...
- Selenium的安装和使用
一.Selenium的安装,Selenium是一个自动化测试工具,利用它我们可以驱动浏览器执行特定的动作,如点击.下拉等操作.对于一些JavaScript渲染的页面来说,这种抓取方式非常有效.1.pi ...
- 04 Windows安装python运行环境
安装python运行环境 使用微信扫码关注微信公众号,并回复:"Python工具包",免费获取下载链接! 1.卸载程序(电脑未装此程序,跳过此过程) 卸载这两个程序 出现下图所示, ...
- tensoboard [Errno 22] Invalid argument 以及 Invalid format string问题解决
Invalid argument 问题解决: 需要保证tensorboard与tensorflow版本一致. Invalid format string 问题解决: 修改 manager.py 文件中 ...