多校第9场

E: 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4690

这道题挺水,只是要耐心的打表,我一开始只打了一半就不想做了,也是因为我的方法太麻烦了,把x,y坐标分开存,处理的数据量差不多增加了一倍。

 这题有一点注意:题目中并没有限制字符串的长度,所以char数组尽量开大些。

下面是赛后AC的代码:

#include<iostream>
#include<cstdio>
#include<string>
#include<cstring>
#include<algorithm>
#include<cmath>
using namespace std;
string s[100][100];
char a[9000000];
void init()
{
    s[0][0] = "00";
    s[0][1] = "01";
    s[0][2] = "02";
    s[0][3] = "03";

    s[0][5] = "09";
    s[0][7] = "7F" ;

    s[0][11] = "0B";
    s[0][12] = "0C";
    s[0][13] = "0D";
    s[0][14] =  "0E";
    s[0][15] =  "0F";

    s[1][0] =  "10";
    s[1][1] =  "11";
    s[1][2] =  "12";
    s[1][3] = "13";

    s[1][6] = "08";
    s[1][8] = "18";
    s[1][9] =  "19";

    s[1][12] =  "1C";
    s[1][13] =  "1D";
    s[1][14] =  "1E";
    s[1][15] =  "1F" ;

    s[2][5] = "0A";
    s[2][6] = "17";
    s[2][7] = "1B" ;
    s[2][13] = "05" ;
    s[2][14] = "06" ;
    s[2][15] = "07";


    s[3][2] = "16";

    s[3][7] = "04";

    s[3][12] = "14";
    s[3][13] = "15";
    s[3][15] = "1A";

    s[4][0]="20";

    s[4][11]="2E";
    s[4][12]="3C";
    s[4][13]="28";
    s[4][14]="2B";
    s[4][15]="7C";

    s[5][0]="26";

    s[5][10]="21";
    s[5][11]="24";
    s[5][12]="2A";
    s[5][13]="29";
    s[5][14]="3B";

    s[6][0]="2D";
    s[6][1]="2F";

    s[6][11]="2C";
    s[6][12]="25";
    s[6][13]="5F";
    s[6][14]="3E";
    s[6][15]="3F";

    s[7][9]="60";
    s[7][10]="3A";
    s[7][11]="23";
    s[7][12]="40";
    s[7][13]="27";
    s[7][14]="3D";
    s[7][15]="22";

    s[8][1]="61";
    s[8][2]="62";
    s[8][3]="63";
    s[8][4]="64";
    s[8][5]="65";
    s[8][6]="66";
    s[8][7]="67";
    s[8][8]="68";
    s[8][9]="69";

    s[9][1]="6A";
    s[9][2]="6B";
    s[9][3]="6C";
    s[9][4]="6D";
    s[9][5]="6E";
    s[9][6]="6F";
    s[9][7]="70";
    s[9][8]="71";
    s[9][9]="72";

    s[10][1]="7E";
    s[10][2]="73";
    s[10][3]="74";
    s[10][4]="75";
    s[10][5]="76";
    s[10][6]="77";
    s[10][7]="78";
    s[10][8]="79";
    s[10][9]="7A";

    s[11][0]="5E";

    s[11][10]="5B";
    s[11][11]="5D";

    s[12][0]="7B";
    s[12][1]="41";
    s[12][2]="42";
    s[12][3]="43";
    s[12][4]="44";
    s[12][5]="45";
    s[12][6]="46";
    s[12][7]="47";
    s[12][8]="48";
    s[12][9]="49";

    s[13][0]="7D";
    s[13][1]="4A";
    s[13][2]="4B";
    s[13][3]="4C";
    s[13][4]="4D";
    s[13][5]="4E";
    s[13][6]="4F";
    s[13][7]="50";
    s[13][8]="51";
    s[13][9]="52";

    s[14][0]="5C";

    s[14][2]="53";
    s[14][3]="54";
    s[14][4]="55";
    s[14][5]="56";
    s[14][6]="57";
    s[14][7]="58";
    s[14][8]="59";
    s[14][9]="5A";

    s[15][0]="30";
    s[15][1]="31";
    s[15][2]="32";
    s[15][3]="33";
    s[15][4]="34";
    s[15][5]="35";
    s[15][6]="36";
    s[15][7]="37";
    s[15][8]="38";
    s[15][9]="39";
}
int main()
{
    init();
    scanf("%s",a);
    int len=strlen(a);
    int x,y;
    for(int i=0;i<len;i+=2)
    {
        //cout<<i<<endl;
        if(a[i]>='0'&&a[i]<='9')
            x=a[i]-'0';
        else
            x=a[i]-'A'+10;
        if(a[i+1]>='0'&&a[i+1]<='9')
            y=a[i+1]-'0';
        else
            y=a[i+1]-'A'+10;
        cout<<s[x][y];
    }
    cout<<endl;
    return 0;
}


 

A:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4686

矩阵加快速幂

只是不知道矩阵如何构造出来,还是明白后再写吧。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值