#include <iostream>
#include <algorithm>
#include <string>
#define MAXN 27
using namespace std; struct node
{
int len;
string s;
};
char fun(string s);
node _node[MAXN];
int n[]; int main()
{
int time = ;
//freopen("acm.acm","r",stdin);
int i;
_node[].len = ;
_node[].s = ".-";
_node[].len = ;
_node[].s = "-...";
_node[].len = ;
_node[].s = "-.-.";
_node[].len = ;
_node[].s = "-..";
_node[].len = ;
_node[].s = ".";
_node[].len = ;
_node[].s = "..-.";
_node[].len = ;
_node[].s = "--."; _node[].len = ;
_node[].s = "....";
_node[].len = ;
_node[].s = "..";
_node[].len = ;
_node[].s = ".---";
_node[].len = ;
_node[].s = "-.-";
_node[].len = ;
_node[].s = ".-..";
_node[].len = ;
_node[].s = "--";
_node[].len = ;
_node[].s = "-."; _node[].len = ;
_node[].s = "---";
_node[].len = ;
_node[].s = ".--.";
_node[].len = ;
_node[].s = "--.-";
_node[].len = ;
_node[].s = ".-.";
_node[].len = ;
_node[].s = "...";
_node[].len = ;
_node[].s = "-";
_node[].len = ;
_node[].s = "..-";
_node[].len = ;
_node[].s = "...-";
_node[].len = ;
_node[].s = ".--";
_node[].len = ;
_node[].s = "-..-";
_node[].len = ;
_node[].s = "-.--";
_node[].len = ;
_node[].s = "--.."; int test;
string _s;
string s;
// int i;
cin>>test;
while(test --)
{ cin>>s;
_s = "";
for(i = ; i < s.length(); ++ i)
{
if(s[i] >= 'A' && s[i] <= 'Z')
{
_s += _node[s[i]-'A'].s;
n[i] = _node[s[i]-'A'].len;
}
else if(s[i] == '_')
{
_s += "..--";
n[i] = ;
}
else if(s[i] ==',')
{
_s += ".-.-";
n[i] = ;
}
else if(s[i] == '.')
{
_s += "---.";
n[i] = ;
}
else if(s[i] == '?')
{
_s += "----";
n[i] = ;
}
}
reverse(n,n+s.length());
// for(i = 0; i < s.length(); ++ i)
// {
// cout<<n[i]<<" ";
// }
// cout<<s<<endl;
// cout<<_s<<endl;
// cout<<endl;
cout<<++ time<<": ";
int j = ;
for(i = ; i < _s.length();)
{
string k;
k = _s.substr(i,n[j]);
i += n[j ++];
//cout<<k<<endl;
// cout<<(char)(fun(k)+'A');
// cout<<k<<" ";
cout<<fun(k);
}
cout<<endl;
}
} char fun(string s)
{
int i;
if(s == "..--")
{
return '_';
}
else if(s == ".-.-")
{
return ',';
}
else if(s == "---.")
{
return '.';
}
else if(s == "----")
{
return '?';
} for(i = ; i < MAXN; ++ i)
{
if(_node[i].s == s)
{
return char('A'+i);
}
}
}

关注我的公众号,当然,如果你对Java, Scala, Python等技术经验,以及编程日记,感兴趣的话。

技术网站地址: vmfor.com

POJ 1051的更多相关文章

  1. POJ 1051 Jury Compromise ——(暴力DP)

    题目不难,暴力地dp一下就好,但是不知道我WA在哪里了,对拍了好多的数据都没找出错误= =.估计又是哪里小细节写错了QAQ..思路是用dp[i][j]表示已经选了i个,差值为j的最大和.转移的话暴力枚 ...

  2. HDU ACM 1051/ POJ 1065 Wooden Sticks

    Wooden Sticks Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Tot ...

  3. POJ题目排序的Java程序

    POJ 排序的思想就是根据选取范围的题目的totalSubmittedNumber和totalAcceptedNumber计算一个avgAcceptRate. 每一道题都有一个value,value ...

  4. POJ 题目分类(转载)

    Log 2016-3-21 网上找的POJ分类,来源已经不清楚了.百度能百度到一大把.贴一份在博客上,鞭策自己刷题,不能偷懒!! 初期: 一.基本算法: (1)枚举. (poj1753,poj2965 ...

  5. (转)POJ题目分类

    初期:一.基本算法:     (1)枚举. (poj1753,poj2965)     (2)贪心(poj1328,poj2109,poj2586)     (3)递归和分治法.     (4)递推. ...

  6. poj分类

    初期: 一.基本算法:      (1)枚举. (poj1753,poj2965)      (2)贪心(poj1328,poj2109,poj2586)      (3)递归和分治法.      ( ...

  7. poj 题目分类(1)

    poj 题目分类 按照ac的代码长度分类(主要参考最短代码和自己写的代码) 短代码:0.01K--0.50K:中短代码:0.51K--1.00K:中等代码量:1.01K--2.00K:长代码:2.01 ...

  8. POJ题目分类(按初级\中级\高级等分类,有助于大家根据个人情况学习)

    本文来自:http://www.cppblog.com/snowshine09/archive/2011/08/02/152272.spx 多版本的POJ分类 流传最广的一种分类: 初期: 一.基本算 ...

  9. POJ题目分类(转)

    初期:一.基本算法:     (1)枚举. (poj1753,poj2965)     (2)贪心(poj1328,poj2109,poj2586)     (3)递归和分治法.     (4)递推. ...

随机推荐

  1. 使用delphi 开发多层应用(二十二)使用kbmMW 的认证管理器

    从kbmmw 4.4 开始,增加了认证管理器,这个比原来的简单认证提供了更多的功能.细化了很多权限操作. 今天对这一块做个介绍. 要做一个认证管理,大概分为以下5步: 1.  定义你要保护的资源,一般 ...

  2. 2018.07.22 洛谷P2986 伟大的奶牛聚集(树形dp)

    传送门 给出一棵树,树有边权和点权,若选定一个点作为中心,这棵树的代价是所有点权乘上到根的距离的和.求代价最小. 解法:一道明显的换根dp" role="presentation& ...

  3. PHP二个高精确度数字相加减

    1.相加 string bcadd(string left operand, string right operand, int [scale]); 2.相减 string bcsub(string ...

  4. (快速幂)Key Set--hdu--5363

    链接: http://acm.hdu.edu.cn/showproblem.php?pid=5363 http://acm.hust.edu.cn/vjudge/contest/view.action ...

  5. hdu 1231 最大连续子序列 ,1003 Max Sum;

    题目(1231) #include<stdio.h> #include<iostream> using namespace std; int main() { int K,nu ...

  6. 隐式等待-----Selenium快速入门(九)

    有时候,网页未加载完成,或加载失败,但是我们后续的代码就已经开始查找页面上的元素了,这通常将导致查找元素失败.在本系列Selenium窗口切换-----Selenium快速入门(六)中,我们就已经出现 ...

  7. .net图表之ECharts随笔09-pie环形图表

    这是最后的效果图 1. 这里title属性用到了富文本标签 官方文档是用的label属性,看得我一开始格外的懵逼.后面我尝试着在text中写入格式,没想到竟然成功了. rich中定义样式,在text中 ...

  8. asp.net core 使用identityServer4的密码模式来进行身份认证(一)

    IdentityServer4是ASP.NET Core的一个包含OpenID和OAuth 2.0协议的框架.具体Oauth 2.0和openId请百度. 前言本博文适用于前后端分离或者为移动产品来后 ...

  9. C#委托总结-入门篇

    1,概念:委托类型表示对具有特定参数列表和返回类型的方法的引用. 通过委托,可以将方法视为可分配给变量并可作为参数传递的实体. 委托是引用类型,可以把它看作是用来存方法的一种类型.比如说类型strin ...

  10. 关于ORACLE的字符窜存储(未完善,欢迎补充)

    oracle中常见的用于存储字符串的数据类型有: 数据类型 是否定长 最多存储数 效率排行 备注 是否oracle特有 英文占位 中文占位 char 是 2000 比VARCHAR2稍高 char的长 ...