UOJ Logo

NOI.AC

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#206804#3719. 加密通话Allen123456hello100583ms4300kbC++111.5kb2024-07-25 18:18:292024-07-25 20:21:35

answer

#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
int A[260005],B[260005],C[260005];
string mul(string a,string b){
    string ans;
    if (a=="0"||b=="0"){return "0";}
    memset(C,0,sizeof C);
    reverse(a.begin(),a.end());
    reverse(b.begin(),b.end());
    int sizeans=a.size()+b.size(),asize=a.size(),bsize=b.size();
    for (int i=1;i<=asize;++i){
        A[i]=a[i-1]^48;
    }
    for (int i=1;i<=bsize;++i){
        B[i]=b[i-1]^48;
    }
    for (int i=1;i<=asize;++i){
        for (int j=1;j<=bsize;++j){
            C[i+j-1]+=A[i]*B[j];
        }
    }
    for (int i=1;i<=sizeans;++i){
        C[i+1]+=C[i]/10;C[i]%=10;
    }
    while ((sizeans>1)&&(!(C[sizeans]))){--sizeans;}
    for (int i=sizeans;i>=1;--i){ans+=(char)(C[i]^48);}
    return ans;
}
string add(string a,string b){
    memset(A,0,sizeof A);
    memset(B,0,sizeof B);
    memset(C,0,sizeof C);
    for (int i=a.size(),j=0;i>=1;--i,++j){A[j]=a[i-1]^48;}
    for (int i=b.size(),j=0;i>=1;--i,++j){B[j]=b[i-1]^48;}
    int sss=max(a.size(),b.size())+1;
    for (int i=0;i<=sss;++i){
        C[i]+=A[i]+B[i];C[i+1]+=C[i]/10;C[i]%=10;
    }
    bool ok=0;
    string ans="";
    for (int i=sss;~i;--i){ok|=C[i];if (ok){ans+=(char)(C[i]^48);}}
    return (ans.size())?ans:"0";
}
char s[505];
string ans="0";
int main(){
    scanf("%s",s+1);
    int t;
    for (int i=1;s[i];++i){
        ans=mul(ans,"26");t=s[i]-'a'+1;if (t==26){t=0;ans=add(ans,"26");}ans=add(ans,to_string(t));
    }
    puts(ans.c_str());
    return 0;
}

详细

小提示:点击横条可展开更详细的信息

Test #1:

score: 10
Accepted
time: 4ms
memory: 4292kb

input:

aaa

output:

703

result:

ok single line: '703'

Test #2:

score: 10
Accepted
time: 0ms
memory: 4292kb

input:

otto

output:

277695

result:

ok single line: '277695'

Test #3:

score: 10
Accepted
time: 0ms
memory: 4292kb

input:

wonder

output:

280375204

result:

ok single line: '280375204'

Test #4:

score: 10
Accepted
time: 4ms
memory: 4296kb

input:

abitwzdkxul

output:

154073598812678

result:

ok single line: '154073598812678'

Test #5:

score: 10
Accepted
time: 6ms
memory: 4296kb

input:

opgwlppmlumy

output:

57356751904151439

result:

ok single line: '57356751904151439'

Test #6:

score: 10
Accepted
time: 6ms
memory: 4296kb

input:

jwwvqldtsjskf

output:

1042077430022487696

result:

ok single line: '1042077430022487696'

Test #7:

score: 10
Accepted
time: 153ms
memory: 4296kb

input:

jfrioyvbyqsoxygmajdiqorgijlhkhbwwjawtwckokqyvxrdsqymffhfbuwajpuoqbcnddsyevhkapeusipgjvszubapviqtvmrz...

output:

4300911453790411800945391903152765942782793138336118343042260142874506488263785673172087778384488963...

result:

ok single line: '430091145379041180094539190315...9276413044766128134123598377397'

Test #8:

score: 10
Accepted
time: 141ms
memory: 4300kb

input:

udbsljdblcgcdylvoettkrrxsonxxwzpwcxtjnqbvbirbsrgliszqfqkaiwydmmxknyaryrfjogtianswvlqzsmyscvsiipecngs...

output:

1487898281503557831748070024669444336196763093279730130921507188777488934832629510294231582511917662...

result:

ok single line: '148789828150355783174807002466...3974947859267251785532872755112'

Test #9:

score: 10
Accepted
time: 132ms
memory: 4296kb

input:

gursgiqzlcfqnjjxjowqzubnydiygjxestvlehffjkybkmnrsbzzkprrnyvmppxwwyhmjmsfukcpjmmltovusjaqzfmhdsqjkcsx...

output:

6050651831854106655593124171348136351661687936535471990086285246928592125170210941171129207820422193...

result:

ok single line: '605065183185410665559312417134...0496840954331952742930298239413'

Test #10:

score: 10
Accepted
time: 137ms
memory: 4300kb

input:

vgkblomiykrhfzqnuwhrnmrjbqpflvpqlpivadvtwilhsbpttuolnfztlmcoctewhjrsjmhlgnlbginckuabmaogphxqkiweuubw...

output:

7504794918572298229797229224430944880316394524818964978603096666297543234087454896646797196502491357...

result:

ok single line: '750479491857229822979722922443...1605770094120254709299186651392'