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为基础来实现传统图灵机的理论计算模型.利用该模型.能够通过训练的方式让系统"学 ...
随机推荐
- Go Micro Dashboard - 简介
前言 使用Go Micro开发微服务系统很久了,但是一直没有很好的可视化工具用于开发和监控微服务系统. 所以基于go-micro和ng-alain开发了Go Micro Dashboard,目前已经支 ...
- Java设计模式之(十一)——享元模式
1.什么是享元模式? Use sharing to support large numbers of fine-grained objects efficiently. 享元模式(Flyweight ...
- 阿里性能专家全方位对比Jmeter和Locust,到底谁更香?
近些年,随着互联网行业的不断发展,用户规模也有了爆发性的增长.产品的性能成为影响用户体验的重要因素.因此,性能测试越来越受到大型互联网企业的重视. 在做性能测试时,通常都会借助一些压测工具来模拟大量的 ...
- Codeforces 1264F - Beautiful Fibonacci Problem(猜结论+找性质)
Codeforces 题面传送门 & 洛谷题面传送门 一道名副其实(beautiful)的结论题. 首先看到这道设问方式我们可以很自然地想到套用斐波那契数列的恒等式,注意到这里涉及到 \(F_ ...
- 一类巧妙利用利用失配树的序列DP
I.导入 求长度为\(\text{len}\)的包含给定连续子串\(\text{T}\)的 0/1 串的个数.(\(|T|<=15\)) 通常来说这种题目应该立刻联想到状压 DP 与取反集--这 ...
- DTOJ 4027:挖煤
挖煤 [问题描述]众所周知, 小C是挖煤好手.今天他带着他的魔法镐子去挖煤 ,他的镐子一开始有$w$点魔力.他的挖煤 路线 上会依次 经过$n$个地点, 地点, 每个 地点是煤矿或者补给站,设小C当前 ...
- Linux—yum的python版本错误——高级解决方案
彻底搞明白,python升级后,为什么会导致yum不可用 首先我们来分析下,python升级后,yum为什么会不可用? 先说个关于python的问题,Linux系统很多软件都依赖于python,因此不 ...
- 30-Container With Most Water-Leetcode
Given n non-negative integers a1, a2, -, an, where each represents a point at coordinate (i, ai). n ...
- 28-Merge Two Sorted Lists
easy 21. Merge Two Sorted Lists Merge two sorted linked lists and return it as a new list. The new l ...
- (转载)SQL Server 2008 连接JDBC详细图文教程
点评:SQL Server 2008是目前windows上使用最多的sql数据库,2008的安装机制是基于framework重写的,特点是非常耗时间SQL Server 2008是目前windows上 ...