POJ 1051 P,MTHBGWB

原创 2012年03月26日 22:30:59

1. C++中string类的练习,使用的数据结构慢慢地开始有心得了;

2. string类中的+=操作符和append( )函数的使用;

3. 这道题很简单,开始出错是因为string类型的变量没有初始化。string str = "";//初始化为空字符串;

4. 推荐一个c++的网站(cplusplus.com - The C++ Resources Network)。

#include <iostream>
#include <string>
#include <cstring>
using namespace std;
struct type
{
    string str;
    char let;
    int len;
}ltr[30]={{".-",'A',2},{"-...",'B',4},{"-.-.",'C',4},{"-..",'D',3},{".",'E',1},{"..-.",'F',4},{"--.",'G',3},{"....",'H',4},{"..",'I',2},{".---",'J',4},{"-.-",'K',3},{".-..",'L',4},{"--",'M',2},{"-.",'N',2},{"---",'O',3},{".--.",'P',4},{"--.-",'Q',4},{".-.",'R',3},{"...",'S',3},{"-",'T',1},{"..-",'U',3},{"...-",'V',4},{".--",'W',3},{"-..-",'X',4},{"-.--",'Y',4},{"--..",'Z',4},{"..--",'_',4},{".-.-",',',4},{"---.",'.',4},{"----",'?',4}};

int main()
{
    string str_in, tmp, str_out, tmp_m;
    int num[101], i, k, mm, nn, cas, j;
    cin >> cas;
    for (i = 1; i <= cas; i++)
    {
        str_in = "";
        cin >> str_in;
        memset(num, 0, sizeof(num));
        str_out = "";
        tmp = "";
        for (j = 0; j < str_in.length(); j++)
            for (k = 0; k < 30; k++)
                if (str_in[j] == ltr[k].let)
                {
                    tmp += ltr[k].str;
                    num[j] = ltr[k].len;
                    break;
                }
//        cout << tmp << endl;
//        for (j = 0; j < str_in.length(); j++)
//            cout << num[j];
//        cout << endl;
        mm = num[str_in.length() - 1];
        nn = 0;
        for (j = str_in.length() - 1; j >= 0; j--)
        {
            tmp_m = "";
            for (k = nn; k < mm; k++)
                tmp_m += tmp[k];
//            cout << tmp_m << endl;
            for (k = 0; k < 30; k++)
                if (tmp_m == ltr[k].str)
                {
                    str_out += ltr[k].let;
                    break;
                }
            nn += num[j];
            mm += num[j-1];
        }
        cout << i << ": " << str_out << endl;
    }
    return 0;
}


poj 1051 P,MTHBGWB(字符串,较麻烦)

1、http://poj.org/problem?id=1051 注意字符串那些需要清空,string 清空用        rstr="";   2、题目: P,MTHBGWB ...
  • sdjzping
  • sdjzping
  • 2013年05月23日 19:13
  • 1276

poj 3111 K Best ,二分,牛顿迭代

poj 3111  K Best 有n个物品的重量和价值分别是wi和vi。从中选出k个物品使得单位重量的价值最大。 题解: 1、二分做法 2、牛顿迭代 效率比较: 二分做法: 转换成判断...
  • yew1eb
  • yew1eb
  • 2014年08月21日 16:12
  • 2101

PAT乙级—1051. 复数乘法 (15)-native

复数可以写成(A + Bi)的常规形式,其中A是实部,B是虚部,i是虚数单位,满足i2 = -1;也可以写成极坐标下的指数形式(R*e(Pi)),其中R是复数模,P是辐角,i是虚数单位,其等价于三角形...
  • wanmeiwushang
  • wanmeiwushang
  • 2016年05月30日 18:19
  • 1230

POJ 1051 P,MTHBGWB 简单字符串转换

P,MTHBGWBTime Limit: 1000MS Memory Limit: 10000KTotal Submissions: 5309 Accepted: 3048DescriptionMor...
  • fashiontong
  • fashiontong
  • 2011年04月13日 20:15
  • 416

poj 1051 P,MTHBGWB(字符串,较麻烦)

1、http://poj.org/problem?id=1051 注意字符串那些需要清空,string 清空用        rstr="";   2、题目: P,MTHBGWB ...
  • sdjzping
  • sdjzping
  • 2013年05月23日 19:13
  • 1276

【排序】洛谷 P1051 谁拿了最多奖学金

题目描述某校的惯例是在每学期的期末考试之后发放奖学金。发放的奖学金共有五种,获取的条件各自不同:1) 院士奖学金,每人8000元,期末平均成绩高于80分(>80),并且在本学期内发表1篇或1篇以上论文...
  • hyj542682306
  • hyj542682306
  • 2017年05月05日 15:11
  • 116

vijos P1051 送给圣诞夜的极光

调了好久。。。
  • will7101
  • will7101
  • 2015年11月14日 19:03
  • 177

洛谷 P1051 谁拿了最多奖学金

问题: 题目描述 某校的惯例是在每学期的期末考试之后发放奖学金。发放的奖学金共有五种,获取的条件各自不同: 1) 院士奖学金,每人8000元,期末平均成绩高于80分(>80)...
  • cxy201658503125
  • cxy201658503125
  • 2017年06月10日 16:20
  • 167

【宽搜】Vijos P1051 送给圣诞夜的极光

题目链接:   https://vijos.org/p/1051 题目大意:   给一张‘-’和‘#’的图,规定曼哈顿距离小于等于2的‘#’属于同一图案,求图案数。【曼哈顿距离:对于A(x1,y1)和...
  • u010568270
  • u010568270
  • 2016年08月16日 23:35
  • 286

【BZOJ】【P1051】【HAOI2006】【受欢迎的牛】【强连通分量】

传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=1051 Code: /* ID:zky OJ:BZOJ Index:1051 Lang...
  • u012732945
  • u012732945
  • 2014年03月30日 21:45
  • 720
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:POJ 1051 P,MTHBGWB
举报原因:
原因补充:

(最多只允许输入30个字)