题目大意:给你一串代码,要求进行解码。解码规则详见题目。

解题思路:这是一道字符串处理的题目。

首先,有这么几种情况输出Error:

1.代码中出现除了0和1外的字符。

2.代码长度不是8的倍数。

3.在输出字母时发现转化后的数字大于25。

4.进行加法时,第二个数不是一个数单元。

其余情况均能解码。解码时转化一下即可。

答案输出的技巧:本题如果一个操作一个操作输出,可能遇到输出到一半发现Error的情况。解决方案是把答案存在一个字符串当中,最后整个字符串输出即可。

C++ Code:

#include<cstdio>
#include<cstdlib>
#include<string>
#include<cstring>
using std::string;
char buf[171118],s[11];
int bufpos;
string ans;
inline void error(){puts("Error");exit(0);}
inline void get(char* s){for(int i=0;i<8;++i,++bufpos)*s++=buf[bufpos];}
int main(){
ans="";
scanf("%s",buf);
for(int i=0;buf[i];++i)if(buf[i]!='0'&&buf[i]!='1')error();
if(strlen(buf)%8)error();
bufpos=0;
while(buf[bufpos]=='0'||buf[bufpos]=='1'){
get(s);
if(s[0]=='1'&&s[1]=='0'&&s[2]=='1'){
int p=0;
for(int i=7,j=1;i>2;--i,j<<=1)
p+=(s[i]-'0')*j;
if(p<26)ans+=(char)(p+'A');else error();
}else
if(s[0]=='1'&&s[1]=='1'&&s[2]=='1')ans+=' ';else
if(s[0]=='0'){
int p=0,pp;
for(int i=7,j=1;i;--i,j<<=1)
p+=(s[i]-'0')*j;
pp=p>>1;p=0;
if(buf[bufpos]!='0')error();
get(s);
for(int i=7,j=1;i;--i,j<<=1)
p+=(s[i]-'0')*j;
p>>=1;p+=pp;
if(p==0)ans+='0';else{
int w=1;
for(;w<=p;w*=10);
for(w/=10;w;w/=10)ans+=(char)((p/w)^'0'),p%=w;
}
}
}
printf("%s\n",ans.c_str());
return 0;
}

[洛谷P3982]龙盘雪峰信息解析器的更多相关文章

  1. 洛谷 - Sdchr 的邀请赛 T4 信息传递

    (乱搞艹爆正解系列) 对不起,由于博主太弱了,并不会正解的多项式exp(甚至多项式exp我都不会2333). 只能来说一说我是怎么乱搞的啦QWQ 首先这个题最关键的性质是: 一个在原置换 g 中长度为 ...

  2. 【洛谷P2028 龙兄摘苹果】动态规划

    分析 第二类striling数 考虑最后一个数到底是放在之前的任意一个集合内,还是自成一个集合 \[F_{i\ j}=F_{i-1\ j-1}+j\times F_{i-1,j} \] AC代码 #i ...

  3. 题解 洛谷P4035/BZOJ1013【[JSOI2008]球形空间产生器】

    题目链接在这QvQ "你要求出这个n维球体的球心坐标",这使我想到的解方程...... 先假设n=2,这是一个二维平面.设圆心的坐标为\((x,y)\),有两个坐标\((a_1,b ...

  4. 洛谷 P1019 单词接龙 (DFS)

    题目传送门 当时一看到这题,蒟蒻的我还以为是DP,结果发现标签是搜索-- 这道题的难点在于思路和预处理,真正的搜索实现起来并不难.我们可以用一个贪心的思路,开一个dic数组记录每个单词的最小重复部分, ...

  5. 洛谷P2661 信息传递(最小环,并查集)

    洛谷P2661 信息传递 最小环求解采用并查集求最小环. 只适用于本题的情况.对于新加可以使得两个子树合并的边,总有其中一点为其中一棵子树的根. 复杂度 \(O(n)\) . #include< ...

  6. 【题解】洛谷P2661 [NOIP2015TG] 信息传递

    题目来源:洛谷P2661 思路 运用并查集查找图中最小环的长度 如果A传递信息给B 就从A加一条边指向B 并更新A的父节点 从A到父节点的路径长度为B到父节点的路径长度+1 如果有两个点的祖先相同而且 ...

  7. 洛谷p2370yyy2015c01的U盘题解

    没什么特殊的想法 就是看自己很久没有更新关于题解类的文章了而已 (其实这是我好久之前做的, 只是把它从洛谷博客搬到了这里而已) 题目 首先分析题目要二分 他长成这个亚子太二分了 所以就要二分 最好是先 ...

  8. 洛谷P4047 [JSOI2010]部落划分题解

    洛谷P4047 [JSOI2010]部落划分题解 题目描述 聪聪研究发现,荒岛野人总是过着群居的生活,但是,并不是整个荒岛上的所有野人都属于同一个部落,野人们总是拉帮结派形成属于自己的部落,不同的部落 ...

  9. [洛谷OJ] P1114 “非常男女”计划

    洛谷1114 “非常男女”计划 本题地址:http://www.luogu.org/problem/show?pid=1114 题目描述 近来,初一年的XXX小朋友致力于研究班上同学的配对问题(别想太 ...

随机推荐

  1. RocketMQ学习笔记(11)----RocketMQ的PushConsumer和PullConsumer

    1. PushConsumer 推,Broker主动向Consumer推消息,它Consumer的一种,应用通常向对象注册一个Listener接口,一旦接收到消息,Consumer对象立刻回调Lins ...

  2. ZBrush软件如何编辑物体

    新手在刚接触ZBrush®的时候,想要选中模型进行编辑,有时怎么都选不中,当再次画的时候只能在边上新建一个,还是不能进行编辑,遇到类似问题,你是如何解决的,本文将为您讲解ZBrush中怎么选中物体并进 ...

  3. JSP Java服务器页面

    大家好!好久不见!今日我们开始学习JSP了,一些记录基础性的知识在这里与大家分享. 先说下URL(Uniform Resource Locator 统一资源定位符). URL包括传输协议(http:/ ...

  4. Python 进行网络编程

    Date: 2019-06-10 Author: Sun 1. Python TCP通信实现 socket()函数 Python 中,我们用 socket()函数来创建套接字,语法格式如下: sock ...

  5. 小学生都能学会的python(<lamda匿名函数,sorted(),filter(),map(),递归函数>)

    小学生都能学会的python(<<lamda匿名函数,sorted(),filter(),map(),递归函数,二分法>> 1. lambda 匿名函数 lambda 参数: ...

  6. BlogEngine.NET架构学习:Extension扩展实现

    之前有个系列文章介绍过BlogEngine.NET,其中也有关于插件的介绍:"BlogEngine.Net架构与源代码分析系列part9:开发扩展(上)--Extension与管理上的实现& ...

  7. Vue 做项目经验

    Vue 做项目经验 首先需要知道最基本的东西是: Vue 项目打包:npm run build Vue生成在网页上看的端口:npm run dev 修改端口号的地方在: config文件夹下index ...

  8. Tomcat样例安全漏洞

    [漏洞描述] Tomcat在使用的时候一般都直接官网下载源代码包直接使用. 默认情况下,Tomcat源码包里面包含了   examples   这个目录,这个目录主要实现一些样例页面的访问. 比如: ...

  9. HDU——T 1498 50 years, 50 colors

    http://acm.hdu.edu.cn/showproblem.php?pid=1498 Time Limit: 2000/1000 MS (Java/Others)    Memory Limi ...

  10. BZOJ——1602: [Usaco2008 Oct]牧场行走 || 洛谷—— P2912 [USACO08OCT]牧场散步Pasture Walking

    http://www.lydsy.com/JudgeOnline/problem.php?id=1602 || https://www.luogu.org/problem/show?pid=2912 ...