UVA 10878-Decode the tape(模拟)

Decode the tape

Time Limit:3000MS     Memory Limit:0KB     64bit IO Format:%lld
& %llu

Submit Status

Description

"Machines take me by surprise with great frequency."

Alan Turing

Your boss has just unearthed a roll of old computer tapes. The tapes have holes in them and might contain some sort of useful information. It falls to you to figure out what is written on them.

Input

The input will contain one tape.

Output

Output the message that is written on the tape.

Sample Input

___________
| o   .  o|
|  o  .   |
| ooo .  o|
| ooo .o o|
| oo o.  o|
| oo  . oo|
| oo o. oo|
|  o  .   |
| oo  . o |
| ooo . o |
| oo o.ooo|
| ooo .ooo|
| oo o.oo |
|  o  .   |
| oo  .oo |
| oo o.ooo|
| oooo.   |
|  o  .   |
| oo o. o |
| ooo .o o|
| oo o.o o|
| ooo .   |
| ooo . oo|
|  o  .   |
| oo o.ooo|
| ooo .oo |
| oo  .o o|
| ooo . o |
|  o  .   |
| ooo .o  |
| oo o.   |
| oo  .o o|
|  o  .   |
| oo o.o  |
| oo  .  o|
| oooo. o |
| oooo.  o|
|  o  .   |
| oo  .o  |
| oo o.ooo|
| oo  .ooo|
|  o o.oo |
|    o. o |
___________

Sample Output

A quick brown fox jumps over the lazy dog.

考察二进制编码。把o看成1,把‘ ’(空格)看成0,其余的不需要管,但是记住第二个|要输出当前的字符。

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <algorithm>
#include <iostream>
using namespace std;
int main()
{
    char str;
    int cnt=0;
    int sum=0;
    while((str=getchar())!=EOF)
    {
        if(str=='o')
            sum=sum*2+1;
        else if(str==' ')
            sum=sum*2;
        else if(str=='|')
        {
            cnt++;
            if(cnt==2)
            {
                putchar(sum);
                cnt=0;
                sum=0;
            }
        }
    }
    return 0;
}
时间: 2024-10-12 04:12:10

UVA 10878-Decode the tape(模拟)的相关文章

UVA 10878 Decode the tape

终于在UVA上看到一题短的题目,高兴了一下.看完题目以后就懵了.然后就找规律了....... 发现每一行都代表一个字母,然后我就从a开始一个个的对照,把他写出来.然后就发现了某种规律:每行的重要位置都是由'o'和'-'组成的,数一下发现恰好有7个,然后就想到了阿斯克码.果然第一个代表2^6,第二个代表2^5,以此类推--如果是'o'就代表1*2^x,否则就是0,相加以后的值就是字母的阿斯克码. 前两次交居然都RE了... #include<stdio.h> #include<string

UVA之10878 - Decode the tape

[题目] Your boss has just unearthed a roll of old computer tapes. The tapes have holes in them and might contain some sort of useful information. It falls to you to figure out what is written on them. Input The input will contain one tape. Output Outpu

UVA 10142 Australian Voting(模拟)

题意:澳大利亚投票系统要求选民们将所有候选人按愿意选择的程度排序,一张选票就是一个排序.一开始,每张选票的首选项将被统计.若有候选人得票超过50%,他讲直接胜出:否则,所有并列最低的候选人出局,而那些将出局候选人排在第一位的选票将被重新统计为排名最高的未出局候选人.这一筛选过程将持续进行,直到某个候选人得到超过50%的选票,或所有候选人得票相同. #include<cstdio> #include<cstring> #include<iostream> #include

UVA10878 Decode the tape

阿兰·图林说:"机器的高频率令我震惊." 最早的时候,计算机的数据及程序记录卡片上,后来出现了纸带. 问题链接:UVA10878 Decode the tape. 题意简述:本题的题目是纸带编码.输入输入模仿过去的纸带,其中的"|"纸带里是没有的.纸带上信息有7位,通过穿孔实现,有孔的为1(用"o"表示),没孔的地方为0(用空格表示).中间有一串空用于机械带动纸带,用"."表示. 问题分析:用输入数据模拟纸带数据.输入的数据放

小白书训练-Decode the tape

题目链接:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1819 题意:纸带打孔来保持二进制数,打孔便是1,否者为0.这个带子用ASCII保存了一个字符串,一个模拟.用数组使劲RE和WA,无语了.还是一个一个读入过掉的. 代码: #include <iostream> #include <cstdio> using

UVA - 10023 - Square root (模拟手算开方)

题目传送:UVA - 10023 思路:模拟手算开方,不想用c/c++,感觉太麻烦了,就直接用的java里的BigInteger类来写的,写了好久......Java还是得看看书呀,手算开方参考的这里 AC代码: import java.util.Scanner; import java.math.BigInteger; public class Main { static void fun(BigInteger x) { String str; str = x.toString(); str

UVA - 133 The Dole Queue(模拟链表)

点击打开链接 n的人围成一个环,然后按逆时针编号1-n,一个人从1开始逆时针数k个数,另一个人从N开始顺时针数m个数,然后 数出来的两个人出列(两个人可能一样)出列,然后继续此过程,直到全部人都出列为止. 思路是用循环链表来模拟,注意 要分情况来讨论. #include <iostream> #include <cstdio> #include <cmath> #include <vector> #include <cstring> #inclu

UVA 1594:Ducci Sequence (模拟 Grade E)

题意: 对于一个n元组(a0,a1,...),一次变换后变成(|a0-a1|,|a1-a2|,...) 问1000次变换以内是否存在循环. 思路: 模拟,map判重 代码: #include <cstdio> #include <cstring> #include <map> #include <cmath> #include <algorithm> using namespace std; struct Node{ int a[16]; int

UVA 1594 - Ducci Sequence(暴力模拟)

想麻烦了.这题真的那么水啊..直接暴力模拟,1000次(看了网上的200次就能A)后判断是否全为0,否则就是LOOP: 1 #include <iostream> 2 #include <sstream> 3 #include <cstdio> 4 #include <cstring> 5 #include <cmath> 6 #include <string> 7 #include <vector> 8 #include

UVA 506 System Dependencies(模拟 烂题)

https://vjudge.net/problem/UVA-506 题目是给出了五种指令,DEPEND.INSTALL.REMOVE.LIST.END,操作的格式及功能如下: DEPEND item1 item2 (item3 ...) 安装item1需要先安装item2(.item3--) INSTALL item1 安装item1,如果item1依赖其他组件,则先安装其依赖的其他组件 REMOVE item1 移除item1及其依赖的全部组件,如果组件被其他程序依赖,则不移除 LIST 输